在 C++ 中,容器是一种用于存储和组织数据的对象。C++ 标准库提供了多种容器,每种容器都有其特定的用途和性能特点。
1. 数组 (array
): std::array
是一个固定大小的数组容器,大小在编译时确定。它提供了数组操作的功能,并且支持范围检查。适用于需要静态大小的情况。
#include <array>
#include <iostream>
int main() {
std::array<int, 5> arr = {1, 2, 3, 4, 5};
for (int element : arr) {
std::cout << element << " ";
}
std::cout << std::endl;
return 0;
}
2.向量 (vector
): std::vector
是一个动态大小的数组容器,可以动态增加或减少其大小。它提供了快速的随机访问,并且支持在尾部进行插入和删除操作。
#include <vector>
#include <iostream>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
vec.push_back(6); // 在尾部插入元素
for (int element : vec) {
std::cout << element << " ";
}
std::cout << std::endl;
return 0;
}
3.列表 (list
): std::list
是一个双向链表容器,支持在任意位置进行快速插入和删除操作。它不支持随机访问,但支持双向迭代器。
#include <list>
#include <iostream>
int main() {
std::list<int> myList = {1, 2, 3, 4, 5};
myList.push_back(6); // 在尾部插入元素
myList.push_front(0); // 在头部插入元素
for (int element : myList) {
std::cout << element << " ";
}
std::cout << std::endl;
return 0;
}
4.映射 (map
): std::map
是一个关联容器,存储键值对,并且按照键的顺序进行排序。它提供了快速的查找操作,并且支持插入和删除操作。
#include <map>
#include <iostream>
int main() {
std::map<std::string, int> myMap = {{"a", 1}, {"b", 2}, {"c", 3}};
myMap["d"] = 4; // 插入键值对
for (const auto& pair : myMap) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
return 0;
}
5.集合 (set
): std::set
是一个关联容器,存储唯一值,并且按照值的顺序进行排序。它提供了快速的查找操作,并且支持插入和删除操作。
#include <set>
#include <iostream>
int main() {
std::set<int> mySet = {3, 1, 4, 1, 5};
mySet.insert(2); // 插入元素
for (int element : mySet) {
std::cout << element << " ";
}
std::cout << std::endl;
return 0;
}