顺序容器:向量vector、列表list、队列deque
关联容器:集合map、映射set、多重集合multimap、多重映射multiset
容器适配器:栈stack、队列queue、优先队列priority_queue
队列
queue<int>q; q.back(); q.front(); q.push(x); q.empty(); q.pop(); q.size();
栈
stack<int>s; s.top(); s.push(x); s.size(); s.empty(); s.pop();
vector
初始化 vector<int>a; //默认为空 vector<int>b(a); //复制 vector<int>a(10); //10个0 vector<int>a(10,1); //10个大小为1 vector<int>b(a.begin(),a.begin()+3); vector<string>a(10,"null"); 也可以用数组来初始化 int n[]={1,2,3,4}; vector<int>a(n,n+4); 基本操作 vector<int>v; v.size(); v.begin(); v.end(); v.erase(pos); v.clear(); v.push_back(x); v.pop_back(); v.insert(pos,x); v.front(); v.back(); v.empty(); a.insert(a.begin(),1000);//开头插入1000 a.insert(a.begin(),3,1000); //3个1000 b.insert(b.begin(),a.begin(),a.end()); //将范围a插入b a.erase(a.begin()); a.erase(a.begin(),a.begin()+3); b.swap(a); reverse(a.begin(),a.end()); //元素翻转 find(a.begin(),a.end(),num); //找的到返回下标 找不到返回a.end(); 遍历 cin输入 cout<<a[i]访问 vector<int>::iterator it; for(it=a.begin();it!=a.end();it++) cout<<*it; int len=a.size(); for(int i=0;i<len;i++) cout<<a[i];
map
map<int,string>m; m.sert(pair<int,string>(1,"name") ); //不可覆盖 m[1]="name"; //可覆盖 if(m.find(key)!=m.end()) cout<<"find"<<endl; map<int,string>::iterator iter; for(iter=m.begin();iter!=m.end();iter++) cout<<iter->first<<' '<<iter->second<<endl; iter=m.find(key); m.erase(iter); m.clear(); m.swap(); m.count(); m.empty();
string类
string类 string s; string s(str); 生成str的复制品 string s(str,pos); 从str始于pos位置开始 string s(str,pos,len); char t[200]; string s(t); string s(t,len); t的前len个 string s(num,'c'); num个c string s(t.begin(),t.end()); s.swap() s.insert() s.erase() s.clear() s.replace() s.size() s.length() s.empty() s.reserve()