Sobes.tech
Middle

როგორ მუშაობთ C++-ის სტანდარტული კონტეინერების ბიბლიოთეკასთან?

sobes.tech AI

პასუხი AI-სგან

#include <vector>
#include <list>
#include <map>
#include <unordered_map>
#include <set>
#include <unordered_set>
#include <algorithm> // std::sort, std::find жана башка:
#include <iostream>

int main() {
    // std::vector - динамикалык массив
    std::vector<int> vec = {1, 2, 3, 4, 5};
    vec.push_back(6); // Элементти акыркыга кошуу
    std::cout << "Вектордун өлчөмү: " << vec.size() << std::endl;
    std::cout << "Биринчи элемент: " << vec[0] << std::endl;

    // std::list - эки тараптуу тизмек
    std::list<int> lst = {10, 20, 30};
    lst.push_front(5); // Башка жагына кошуу
    lst.push_back(35); // Аягына кошуу
    // Итераторлорду колдонуп өтүү жана өзгөртүү:
    auto it = lst.begin();
    std::advance(it, 2); // 2 орун алдыга жылдыруу
    lst.insert(it, 25); // Учурдагы орунга чейин киргизүү
    // Башка операциялар:
    lst.remove(10); // Маңызы боюнча алып салуу

    // std::map - байланыштуу массив ( ачкыч-маңызы, тартипте)
    std::map<std::string, int> counts;
    counts["apple"] = 1;
    counts["banana"] = 2;
    counts["orange"] = 3;
    std::cout << "Банан саны: " << counts["banana"] << std::endl;
    if (counts.count("kiwi")) { // ачкыч бар-жогун текшерүү
        std::cout << "Киви бар." << std::endl;
    }

    // std::unordered_map - байланыштуу массив (хеш карта, тартипсиз)
    std::unordered_map<std::string, int> fast_counts;
    fast_counts["apple"] = 1;
    fast_counts["banana"] = 2;
    // Элементке жетүү:
    std::cout << "Жылдам эсеп for apple: " << fast_counts.at("apple") << std::endl;

    // std::set - тартиптелген уникалдуу элементтер
    std::set<int> unique_numbers = {5, 2, 8, 2, 5};
    std::cout << "Массив элементтери:";
    for (int num : unique_numbers) {
        std::cout << " " << num; // чыгарышы: 2 5 8
    }
    std::cout << std::endl;
    unique_numbers.insert(10); // Жаңы элемент кошуу

    // std::unordered_set - тартипсиз уникалдуу элементтер (хеш)
    std::unordered_set<int> fast_unique_numbers = {5, 2, 8, 2, 5};
    std::cout << "Тартипсиз сэт элементтери:";
    for (int num : fast_unique_numbers) {
        std::cout << " " << num; // Тартип өзгөрүшү мүмкүн
    }
    std::cout << std::endl;

    // Стандарттык китепкананын алгоритмдерин колдонуу
    std::vector<int> sort_vec = {3, 1, 4, 1, 5, 9};
    std::sort(sort_vec.begin(), sort_vec.end()); // Векторду сорттоо

    // Элементти издөө
    auto find_it = std::find(sort_vec.begin(), sort_vec.end(), 4);
    if (find_it != sort_vec.end()) {
        std::cout << "4 табылды сортталган вектордо." << std::endl;
    }

    return 0;
}