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;
}