容器:containers
Sequence containers(序列式容器)容器中的顺序与插入元素无关,取决于插入的时间和地点
vector
vector 将元素置于dynamic array中,可以随机访问,不指定大小的连续存储,尾部进行push 和pop
#include <vector>
int main(){
vector<int> array;
for (int i=0;i<NUM;i++){
array.push_back(i);
}
for (int j;j<array.size();j++)
printf("%d",array[j]);
return 0;
}
deque
deque 是一个双端队列,头尾都可以进行push/pop
#include <deque>
#include <stdio.h>
int main(){
deque<int> dearray;
for(int i=0;i<NUM;i++){
dearray.push_front(i);
}
for(int j;j<dearray.size();j++){
printf("%d",dearray[j]);
}
return 0;
}
list 双向链表
#include <list>
#include <stdio.h>
int main(){
list<char> list_string;
for(char i='a';i<='z';i++){
list_string.push_back(i);
}
list_string.empty(); #判断容器是否为空
front() #返回顶元素
return 0;
}
Associative containers (关联式容器)取决于特定的排序准则
Sets
set是一个集合,默认会进行排序,支持集合的交差并等操作。
#include <set>
int main(){
set<int> seta; #默认是小于比较器
set<int,greater<int> > setb; #创建一个带大于比较器
seta.insert(1); #插入
seta.erase(); #删除一个元素
seta.clear(); #删除容器中所有的元素
seta.find(); #查找一个元素
return 0;
}
MULtisets
存储键值对,多个键值对的key是可以重复的
#include <Multiset>
int main(){
int array[]={1,2,3,4,5,6,7,8};
multiset<int> seta(array,array+sizeof(array) /sizeof(int));
return 0;
}
Maps
map 中的元素是键值对
#include
int main(){
map<int,string> m;
m.insert(map<int,string>::value_type(1,"one"))#插入key,value
return 0;
}
Multimaps
键值对,key值不能重复,value可以重复