Ma’lumotlar tuzilmasi va algoritmlar fanining maqsad va vazifasini izohlab bering


Misol uchun std::vector ni olamiz



Yüklə 1,56 Mb.
səhifə22/32
tarix05.10.2023
ölçüsü1,56 Mb.
#152400
1   ...   18   19   20   21   22   23   24   25   ...   32
MTA oraliq javoblai

Misol uchun std::vector ni olamiz:

48. Функция параметрлари асосида шаблон параметрларини аниқлаш.

  • Umuman olganda, my_swap funksiyasini burchakli qavsda turni ko’rsatmasdan turib chaqirish mumkin. Kompilyator turni o’zi hosil qiladi.

  • Turni ko’rsatmasdan funksiyani chaqirish:

  • int a = 5;

  • int b = 10;

  • my_swap (a, b);

  • Bu yerda funksiya o’z parametrlariga mos ma’lumot turini qayta ishlaydi. Bu deducing template arguments (argumentlarni chiqarib tashlash) deb ataladi. Yuqoridagilarga asoslangan holda murakkabroq misol uchun shablon funksiyasini yozamiz. Masalan, massiv elementlarini saralash dasturi uchun (bunda “pufaksimon” saralash usulidan foydalanamiz). Tabiiyki, saralash algoritmi barcha massivlar uchun bir xil, lekin massivdagi elementlar turi farq qiladi. elementlar o’rnini almashtirish uchun yuqoridagi my_swap funksiyasidan foydalanamiz.

#include
template < typename T >
void my_swap (T &first, T &second) {
T temp(first); //vaqtincha parametr turga tegishli
first = second;
second = temp; }
template
void bubbleSort(ElementType *arr, size_t arrSize) {
for(size_t i=0; i
for(size_t j=0; j
if (arr[j+1]
my_swap (arr[j], arr[j+1]); }
template
void out_array (const ElementType *arr, size_t arrSize) {
for (size_t i=0; i
std::cout<
std::cout<
int main () {
const size_t n=5 ;
int arr1[n]={10, 5, 7, 3, 4};
double arr2[n]={7.62, 5.56, 38.0, 56.0, 9.0};

Yüklə 1,56 Mb.

Dostları ilə paylaş:
1   ...   18   19   20   21   22   23   24   25   ...   32




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin