container容器的分类:
-序列化容器 每个元素都有固定位置,,取决于插入时机和地点,和元素值无关 vector deque list
-关联式容器,,元素位置取决于特定的排序准则,和插入顺序无关,set multiset map multimap
Vectors
将元素置于一个动态数组中加以管理
可以随机存取元素
数组尾部添加或移除元素非常快,但其他部位很麻烦
#include <iostream>
#include <vector>
using namespace std;
int main(){
vector<int> coll;
for(int i=1;i<=6;i++){
coll.push_back(i);
}
for(int i=0;i<coll.size();++i){
cout << coll[i]<< ' ';
}
cout << endl;
}
vectors是在栈上。。
能变长但变长不多的情况下用vector
list的example
#include<functional>
#include<list>
#include<iostream>
#include<algorithm>
using namespace std;
template <typename T> //function template
void print_elements(T elem)
{
cout << elem << " ";
}
void (*pfi)(int) = print_elements;
void main()
{
int ia[7] = {0,1,2,3,4,5,6};
list<int> ilist(ia,ia+7);
for_each(ilist.begin(), ilist.end(), pfi);
ilist.push_back(7);
ilist.push_back(0);
ilist.push_bach(7);
ilist.push_back(9);
for_each(ilist.begin(), ilist.end(), pfi);
ilist.remove_if(bind2nd(modules<int>(), 2));//去除所有奇数
for_each(ilist.begin(), ilist.end(), pfi);
}