Kommunikatsiyalarini rivojlantirish vazirligi muso al-xorazmiy nomidagi toshkent axborot texnologiyalari


Download 111.99 Kb.
bet2/4
Sana14.12.2022
Hajmi111.99 Kb.
#1005798
1   2   3   4
Bog'liq
Dasturlash 10-mustaqil ishi

2.Vektorga elementlar qo'shish

Vektorga elementlar qo'shish uchun push_back() funksiyasidan foydalaniladi, unga


qo'shilgan element uzatiladi:

#include


#include


int main()
{

std::vector<int> numbers;
numbers.push_back(5);
numbers.push_back(3);
numbers.push_back(10);
for(int n : numbers)
// пустой вектор

cout << n << "\t";
// 5 3 10

std::cout << std::endl;


return 0;
}
Vektorlar massivlardan farqli o'laroq dinamik tuzilmalar bo'lib, biz uning berilgan o'lchamlari bilan
cheklanamiz. Shuning uchun vektorga dinamik ravishda yangi ma'lumotlarni qo'shishimiz mumkin.
emplace_back() funktsiyasi shunga o'xshash vazifani bajaradi - konteyner oxiriga element qo'shish:

std::vector<int> numbers1 = { 1, 2, 3, 4, 5 };


numbers1.emplace_back(8); // numbers1 = { 1, 2, 3, 4, 5, 8 };
Muayyan pozitsiyaga elementlar qo'shish Bir qator funktsiyalar ma'lum bir pozitsiyaga elementlar
qo'shish imkonini beradi.

emplace(pos, value): qiymat elementini iterator pos ko'rsatgan joyga kiritadi


insert(pos, value): qiymat elementini pozitsion iterator ko‘rsatgan joyga, emplace funksiyasiga
o‘xshash joylashtiradi.

insert(pos, n, value): iterator pos ko'rsatgan joydan boshlab qiymatning n ta elementini kiritadi.


insert(pos, begin, end): qo'shimchalar, iterator pos tomonidan ko'rsatilgan joydan boshlanadi, iteratorlar


orasidagi diapazondan boshqa konteynerdan elementlar boshlanadi va tugaydi.

insert(pos, values): iterator pos ko'rsatgan joydan boshlanadigan qiymatlar ro'yxatini kiritadi


joylashtirish funktsiyasi:


std::vector<int> numbers = { 1, 2, 3, 4, 5 };


auto iter = numbers.cbegin(); // константный итератор указывает на первый элемент
numbers.emplace(iter + 2, 8); // добавляем после второго элемента numbers = { 1, 2, 8, 3, 4, 5};




kiritish funktsiyasi:

std::vector<int> numbers1 = { 1, 2, 3, 4, 5 };
auto iter1 = numbers1.cbegin(); // константный итератор указывает на первый элемент
numbers1.insert(iter1 + 2, 8); // добавляем после второго элемента
//numbers1 = { 1, 2, 8, 3, 4, 5};

std::vector<int> numbers2 = { 1, 2, 3, 4, 5 };


auto iter2 = numbers2.cbegin(); // константный итератор указывает на первый элемент
numbers2.insert(iter2 + 1, 3, 4); // добавляем после первого элемента три четверки
//numbers2 = { 1, 4, 4, 4, 2, 3, 4, 5};

std::vector<int> values = { 10, 20, 30, 40, 50 };


std::vector<int> numbers3 = { 1, 2, 3, 4, 5 };
auto iter3 = numbers3.cbegin(); // константный итератор указывает на первый элемент
// добавляем после первого элемента три первых элемента из вектора values
numbers3.insert(iter3 + 1, values.begin(), values.begin() + 3);
//numbers3 = { 1, 10, 20, 30, 2, 3, 4, 5};

std::vector<int> numbers4 = { 1, 2, 3, 4, 5 };


auto iter4 = numbers4.cend(); // константный итератор указывает на позицию за последним
элементом
// добавляем в конец вектора numbers4 элементы из списка { 21, 22, 23 }
numbers4.insert(iter4, { 21, 22, 23 });
//numbers4 = { 1, 2, 3, 4, 5, 21, 22, 23};
Elementlarni olib tashlash

Agar vektorning barcha elementlarini olib tashlash kerak bo'lsa, siz aniq funksiyadan foydalanishingiz


mumkin:

std::vector<int> v = { 1,2,3,4 };


v.clear();
pop_back() funksiyasi vektorning oxirgi elementini olib tashlaydi:

std::vector<int> v = { 1,2,3,4 };



v.pop_back();
// v = { 1,2,3 }

Agar siz elementni konteynerning oʻrtasidan yoki boshidan olib tashlamoqchi boʻlsangiz, quyidagi
shakllarga ega erase() funksiyasidan foydalaning:

erase(p): p iterator tomonidan ko'rsatilgan elementni olib tashlaydi. Iteratorni olib tashlangandan


keyingi elementga yoki oxirgi element olib tashlangan bo'lsa, konteyner oxiriga qaytaradi
oʻchirish(boshlash, tugatish): boshlanish va tugash nuqtalari iteratorlar boʻlgan diapazondan
elementlarni olib tashlaydi. Oxirgi element olib tashlangandan keyin elementga iteratorni qaytaradi




yoki oxirgi element olib tashlangan bo'lsa, konteyner oxiriga qaytaradi

Funktsiyani qo'llash:


std::vector<int> numbers1 = { 1, 2, 3, 4, 5, 6 };


auto iter = numbers1.cbegin(); // указатель на первый элемент
numbers1.erase(iter + 2); // удаляем третий элемент
// numbers1 = { 1, 2, 4, 5, 6 }

std::vector<int> numbers2 = { 1, 2, 3, 4, 5, 6 };


auto begin = numbers2.cbegin(); // указатель на первый элемент

auto end = numbers2.cend();
// указатель на последний элемент

numbers2.erase(begin + 2, end - 1); // удаляем с третьего элемента до последнего
// numbers2 = {1, 2, 6}
Vektor o'lchami
Size() funksiyasidan foydalanib, vektorning oʻlchamini, empty() funksiyasidan foydalanib, vektor
boʻsh yoki yoʻqligini tekshirishingiz mumkin:

#include


#include

Download 111.99 Kb.

Do'stlaringiz bilan baham:
1   2   3   4




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling