最近用set比较多,复习一下基础。
在C++中,vector、deque、list、set、multiset、unordered_set和unordered_multiset都是容器类,但它们有不同的特点和用途。下面是对它们的区别和示例说明:
vector#include #include int main() { std::vector vec = {1, 2, 3}; vec.push_back(4); // 在末尾插入 vec[1] = 10; // 通过索引访问和修改 for (int n : vec) { std::cout << n << " "; } std::cout << std::endl; return 0; } deque#include #include int main() { std::deque deq = {1, 2, 3}; deq.push_front(0); // 在前端插入 deq.push_back(4); // 在末尾插入 for (int n : deq) { std::cout << n << " "; } std::cout << std::endl; return 0; } list#include #include int main() { std::list lst = {1, 2, 3}; lst.push_front(0); // 在前端插入 lst.push_back(4); // 在末尾插入 auto it = lst.begin(); std::advance(it, 2); lst.insert(it, 10); // 在中间插入 for (int n : lst) { std::cout << n << " "; } std::cout << std::endl; return 0; }
set#include #include int main() { std::set s = {3, 1, 2}; s.insert(4); // 插入元素 for (int n : s) { std::cout << n << " "; } std::cout << std::endl; return 0; } multiset#include #include int main() { std::multiset ms = {3, 1, 2, 2}; ms.insert(4); // 插入元素 for (int n : ms) { std::cout << n << " "; } std::cout << std::endl; return 0; } unordered_set#include #include int main() { std::unordered_set us = {3, 1, 2}; us.insert(4); // 插入元素 for (int n : us) { std::cout << n << " "; } std::cout << std::endl; return 0; } unordered_multiset#include #include int main() { std::unordered_multiset ums = {3, 1, 2, 2}; ums.insert(4); // 插入元素 for (int n : ums) { std::cout << n << " "; } std::cout << std::endl; return 0; }