|
Ibrohimov muhammadxon
|
Sana | 25.05.2024 | Hajmi | 137 Kb. | | #253952 |
Bog'liq dasturlash 2
TOSHKENT AXBOROT TEXNALOGIYALAR UNIVERSITETI
Kompyuter injiniringi
020-22-guruh
IBROHIMOV MUHAMMADXON
Faraz qilamiz, bizda quyidagi oddiy ro‘yxat mavjud:
#include
#include
int main() {
std::list originalList = {1, 2, 3, 4, 5};
// Qolgan kod shu yerda bo'ladi
}
Yangi ro‘yxatni teskari tartibda yaratish
Endi biz original ro‘yxatning elementlarini o‘qib, ularni yangi ro‘yxatga teskari tartibda kiritamiz. Buning uchun std::list konteyneridan foydalanamiz.
A. Iteratorlardan foydalanish
Iteratorlardan foydalangan holda, original ro‘yxatni teskari ko‘chirib olamiz:
#include
#include
int main() {
std::list originalList = {1, 2, 3, 4, 5};
std::list reversedList;
// Original ro‘yxatni teskari tartibda o‘qib chiqamiz va yangi ro‘yxatga kiritamiz
for (auto it = originalList.rbegin(); it != originalList.rend(); ++it) {
reversedList.push_back(*it);
}
// Natijani ekranga chiqaramiz
std::cout << "Teskari tartibda ro‘yxat: ";
for (int value : reversedList) {
std::cout << value << " ";
}
std::cout << std::endl;
return 0;
}
Bu yerda rbegin() va rend() iteratorlari yordamida ro‘yxatni teskari o‘qiymiz. push_back metodi orqali elementlarni yangi ro‘yxatga qo‘shamiz.
Ko‘p hollarda bu operatsiyani funksiyaga ajratib yozish foydali bo‘ladi. Quyida reverseList nomli funksiya yordamida ro‘yxatni teskari tartibda qaytaruvchi funksiya yoziladi:
#include
#include
std::list reverseList(const std::list& originalList) {
std::list reversedList;
for (auto it = originalList.rbegin(); it != originalList.rend(); ++it) {
reversedList.push_back(*it);
}
return reversedList;
}
int main() {
std::list originalList = {1, 2, 3, 4, 5};
std::list reversedList = reverseList(originalList);
// Natijani ekranga chiqaramiz
std::cout << "Teskari tartibda ro‘yxat: ";
for (int value : reversedList) {
std::cout << value << " ";
}
std::cout << std::endl;
return 0;
}
Bu usul orqali siz ro‘yxatni teskari tartibda nusxalashni osonlik bilan amalga oshirishingiz mumkin. std::list konteynerining rbegin va rend iteratorlaridan foydalanib, original ro‘yxatni teskari o‘qish va yangi ro‘yxatni yaratish juda oddiy va qulay.
Dastur : Ro‘yxatning nusxasini qurish, lekin teskari tartibda
#include
#include
// Ro‘yxatni teskari tartibda nusxalaydigan funksiya
std::list reverseList(const std::list& originalList) {
std::list reversedList;
// Original ro‘yxatni teskari tartibda o‘qib chiqamiz va yangi ro‘yxatga kiritamiz
for (auto it = originalList.rbegin(); it != originalList.rend(); ++it) {
reversedList.push_back(*it);
}
return reversedList;
}
int main() {
// Original ro‘yxatni yaratamiz
std::list originalList = {1, 2, 3, 4, 5};
// Ro‘yxatning teskari nusxasini olamiz
std::list reversedList = reverseList(originalList);
// Natijani ekranga chiqaramiz
std::cout << "Original ro‘yxat: ";
for (int value : originalList) {
std::cout << value << " ";
}
std::cout << std::endl;
std::cout << "Teskari tartibda ro‘yxat: ";
for (int value : reversedList) {
std::cout << value << " ";
}
std::cout << std::endl;
return 0;
}
Natija:
|
| |