阅读量:101
C++ 提供了多种容器(container)类型,用于存储和管理数据。这些容器包括:向量(vector)、列表(list)、集合(set)、映射(map)等。每种容器都有其特点和适用场景。以下是关于如何存储数据的简要说明:
- 向量(vector):向量是一种动态数组,可以存储相同类型的元素。它会根据需要自动调整大小。要向向量中添加元素,可以使用
push_back()方法;要访问向量中的元素,可以使用下标运算符[]或at()方法。例如:
#include
#include
int main() {
std::vector<int> numbers;
// 添加元素
numbers.push_back(1);
numbers.push_back(2);
numbers.push_back(3);
// 访问元素
std::cout << "第一个元素: " << numbers class="hljs-number">0] << std class="hljs-string">"第二个元素: " << numbers class="hljs-built_in">at(1) << std class="hljs-keyword">return 0;
}
- 列表(list):列表是一种双向链表,可以存储相同类型的元素。列表中的元素可以在运行时任意位置插入或删除。要访问列表中的元素,可以使用下标运算符
[]或迭代器(iterator)。例如:
#include
#include
int main() {
std::list<int> numbers;
// 添加元素
numbers.push_back(1);
numbers.push_back(2);
numbers.push_back(3);
// 访问元素
for (auto it = numbers.begin(); it != numbers.end(); ++it) {
std::cout << *it << " ";
}
return 0;
}
- 集合(set):集合是一种无序的、不重复的元素集合。集合中的元素会自动按键(key)排序。要向集合中添加元素,可以使用
insert()方法;要检查元素是否在集合中,可以使用find()方法。例如:
#include
#include
int main() {
std::set<int> numbers;
// 添加元素
numbers.insert(1);
numbers.insert(2);
numbers.insert(3);
// 检查元素是否存在
if (numbers.find(2) != numbers.end()) {
std::cout << "2 存在于集合中" << std class="hljs-keyword">return 0;
}
- 映射(map):映射是一种键值对(key-value pair)的数据结构,其中键(key)是唯一的。映射中的元素会根据键自动排序。要向映射中添加元素,可以使用
insert()方法;要访问映射中的值,可以使用下标运算符[]或at()方法。例如:
#include
#include
int main() {
std::mapint> ages;
// 添加元素
ages["Alice"] = 30;
ages["Bob"] = 25;
ages["Charlie"] = 35;
// 访问元素
std::cout << "Alice 的年龄: " << ages class="hljs-string">"Alice"] << std class="hljs-string">"Bob 的年龄: " << ages class="hljs-built_in">at("Bob") << std class="hljs-keyword">return 0;
}
这些仅仅是 C++ 容器的一部分,还有其他容器如队列(queue)、栈(stack)等,可以根据实际需求选择合适的容器来存储和管理数据。