最基本的类与容器::
1) 序列式容器:vector
voctor的初始化:
1、vecto<int>a;
2、vector<int>a(10,1);//定义10个具有整型元素的向量且初始值为1
3、int b[7]={1,2,3,4,5,6,7};
vector<int>a(b,b+7);
ps:不能a[0]=1如此用中括号赋值
常见操作
pop_back() | 删除vectore尾部的元素 |
---|---|
a.empty() | a为空则true。否则返回false |
a.size() | 返回 a 中元素的个数 |
a.push_back(t) | 在队列末尾添加一个值为 t 的元素 |
clear() | 删除所有元素 |
erase() | 删除一个或多个元素 |
ps:a.erase(100)会删掉其中所有的100。若只想删一个:
auto it = a.find(100);
if(it!=a.end()) a.erase(it);
2) 关联试容器:set/multiset、map/multimap
set与vector差不多,但set里面的元素是有序且唯一的。
multiset除了不去重几乎与set一样。
map与数组类似,但下标任意。
迭代器(Iterator)
用于提供一种顺序方法访问一个聚合对象中的各个元素
迭代器声明示例
vector<int>::iterator it;
list<int>::iterator it;
容器适配器
1)queue
queue<int>Bookshelf;
queue<int.vector<int>>Bookshelf;
2) priority_queue (与queue类似)
3)stack(同类似)
stack<int>Bookshelf;
已学的算法
1、查找算法
lower_bound:用前要排序
upper_bound:用前要排序
find()
2、排序算法
sort()