C++中的容器(Container)是一种用于存储和操作数据的对象,是STL(Standard Template Library)的核心组成部分之一。容器将数据封装在一个对象中,并提供了一系列的方法来访问和操作这些数据,简化了程序员的编程工作。
C++中的容器库包含了各种不同类型的容器,这些容器具有不同的特点和用途,可以满足不同场景下的需求。常见的容器有序列式容器(Sequence Containers)、关联式容器(Associative Containers)和容器适配器(Container Adapters)。
序列式容器(Sequence Containers)可以按照一定的顺序来保存数据,最常见的是vector、list和deque。以vector为例,下面是一个简单的示例代码:
#include<iostream>
#include<vector>
using namespace std;
int main() {
vector<int> vec = { 1, 2, 3, 4};
vec.push_back(5); //在末尾插入一个元素
vec.pop_back(); //删除末尾的一个元素
cout << vec[2] << endl; //输出下标为2的元素
return 0;
}
上面的代码中,我们首先引入了iostream和vector头文件,然后在定义了一个vector对象vec,并初始化了其中的元素。之后,我们使用push_back()方法在vec的末尾添加了一个新元素5,并使用pop_back()方法删除了vec的末尾元素。最后,我们使用下标操作符[]取出vec中下标为2的元素并输出。
关联式容器(Associative Containers)使用一种称为“映射(Map)”的方式来存储数据,它将每一个数据同时关联一个关键字。例如,set和map都是常见的关联式容器。以map为例,下面是一个简单的示例代码:
#include<iostream>
#include<map>
using namespace std;
int main() {
map<string, int> mp;
mp.insert(make_pair("apple", 1)); //插入一个键值对
mp.insert(make_pair("banana", 2));
mp["cat"] = 3; //这种方法也可以插入(或修改)一个键值对
cout << mp["banana"] << endl; //输出对应于'banana'的值
return 0;
}
上面的代码中,我们首先引入了iostream和map头文件,然后定义了一个键为string类型、值为int类型的map对象mp,并使用insert()方法插入了两个键值对("apple"和"banana"对应的值分别为1和2)。之后,我们使用了一种更为简洁的方式进行了一个新的键值对的插入/修改,并用下标操作符[]取出mp中键为"banana"的对应值,最后输出。
通过上述示例,我们简单介绍了C++中常见的序列式容器和关联式容器。需要注意的是,不同的容器之间有着不同的特点,适用于不同的场景,程序员在选择容器类型时,需要理解它们的特点,并综合考虑程序的规模和数据存储方式等因素。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++中的容器是什么? - Python技术站