C++ 中有两种容器 1.序列式容器 2.关联式容器
这两种容器都在stl标准模板库
中
序列式容器
序列式容器:元素排列顺序与元素本身无关,由添加顺序决定, 比如Java中的Stack栈
C++中有很多序列式容器,比如:
vector、list、dequeue、queue、stack、priority_queue
其中vector、list、dequeue、queue实现方式类似,以vector为例,简单介绍用法:
vector:向量容器
//引入头文件,使用std命名空间
#include <vector>
using namespace std;
//最简单的传建一个容器
vector<int> vec_1;
//声明有一-个元素空间
vector<int> vec_2(1);
// 6个元素值都是1
vector<int> vec_3(6, 1);
//通过一个容器为基础,创建一个新容器
vector<int> vec_4(vec_3);
//添加元素
vec_1.push_back(10);
//通过数组的方式获取元素
vec_1[0];
//获取容器的队前元素
vec_1.front;
//获取容器的队尾
vec_1.back;
//清除容器所有数据
vec_1.clear();
//清除某一区间的数据
vec_1.erase(vec_1.begin, vec_1.end);
//获取容器大小
vec_1.capacity();
关联式容器
关联式容器最为典型的是set
和map
set集合的使用:
//引入set头文件
#include <set>
//set集合,元素不可重复
set<int> set1 = { 1,2,3,4 };
//插入数据
set1.insert(6);
//插入数据返回是否成功
pair<set<int>::iterator,bool> _pair= set1.insert(5);
//迭代器
set<int> ::iterator itt = set1.begin();
set1.end();//指向最后一个元素的下一个元素,一般为NULL,可以以此判断是否遍历到末尾
for (; itt != set1.end(); itt++)
{
cout << *itt << endl;
}
//获取大小
set1.size();
map容器的使用:
map<int, string> map1;
//key不能为空,不能重复
map<int, string> map2 = { {1, "A"}, { 2,"B" } } ;
//插入元素
map2.insert({ 3, "C" });
//查找元素
map2[3];
网友评论