Kommunikatsiyalarini rivojlantirish vazirligi muso al-xorazmiy nomidagi toshkent axborot texnologiyalari
Download 111.99 Kb.
|
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: |
ma'muriyatiga murojaat qiling