• 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
  • rbegin() va rend()
  • std::list
  • Ibrohimov muhammadxon




    Download 137 Kb.
    Sana25.05.2024
    Hajmi137 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:

    Download 137 Kb.




    Download 137 Kb.