STL 容器的常用操作
2015-09-24 15:48
218 查看
#include <iostream>
#include<vector>
#include<set>
#include<map>
using namespace std;
void Print(vector<int> v)
{
for(int i=0;i<v.size();i++)
cout<<v[i]<<" ";
cout<<endl;
}
int main(int argc, const char * argv[]) {
vector<int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
v.push_back(4);
v.push_back(5);
vector<int>::iterator iter = find(v.begin(), v.end(), 3);
cout<<*iter<<endl;
Print(v);
cout<<"v.front(): "<<v.front()<<endl;
cout<<"v.back(): "<<v.back()<<endl;
cout<<"v.capacity(): "<<v.capacity()<<endl;
cout<<"v.size(): "<<v.size()<<endl;
v.erase(v.begin());
v.erase(v.begin(),v.begin()+1);
cout<<"erase3个元素后,v.size(): "<<v.size()<<endl;
Print(v);
remove(v.begin(),v.end(),3);
cout<<"remove1个元素后,v.size(): "<<v.size()<<endl;
Print(v);
v.erase(remove(v.begin(),v.end(),4),v.end());
cout<<"真正删除一个元素:v.size(): "<<v.size()<<endl;
cout<<"before 压缩 v.capacity():"<<v.capacity()<<endl;
vector<int> (v).swap(v);
cout<<"after 压缩 v.capacity():"<<v.capacity()<<endl;
int a[] = {34,56,12,36};
set<int> s(a,a+4);
set<int>::iterator iter = s.begin();
for(;iter!=s.end();++iter)
cout<<*iter<<" ";
cout<<endl;
map<string,int> m;
pair<string,int> val(string("susidian0"),4);
m.insert(val);
m[string("susidian1")] = 1;
m[string("susidian2")] = 2;
map<string,int>::iterator iter = m.begin();
for(;iter != m.end();++iter)
cout<<iter->first<<":"<<iter->second<<endl;
map<string,int>::iterator iter1;
iter1 = m.find(string("susidian1"));
if(iter1 != m.end())
iter1->second = iter1->second +2;
for(iter = m.begin();iter != m.end();++iter)
cout<<iter->first<<":"<<iter->second<<endl;
return 0;
}
3
12 34 36 56
susidian0:4
susidian1:1
susidian2:2
susidian0:4
susidian1:3
susidian2:2
#include<vector>
#include<set>
#include<map>
using namespace std;
void Print(vector<int> v)
{
for(int i=0;i<v.size();i++)
cout<<v[i]<<" ";
cout<<endl;
}
int main(int argc, const char * argv[]) {
vector<int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
v.push_back(4);
v.push_back(5);
vector<int>::iterator iter = find(v.begin(), v.end(), 3);
cout<<*iter<<endl;
Print(v);
cout<<"v.front(): "<<v.front()<<endl;
cout<<"v.back(): "<<v.back()<<endl;
cout<<"v.capacity(): "<<v.capacity()<<endl;
cout<<"v.size(): "<<v.size()<<endl;
v.erase(v.begin());
v.erase(v.begin(),v.begin()+1);
cout<<"erase3个元素后,v.size(): "<<v.size()<<endl;
Print(v);
remove(v.begin(),v.end(),3);
cout<<"remove1个元素后,v.size(): "<<v.size()<<endl;
Print(v);
v.erase(remove(v.begin(),v.end(),4),v.end());
cout<<"真正删除一个元素:v.size(): "<<v.size()<<endl;
cout<<"before 压缩 v.capacity():"<<v.capacity()<<endl;
vector<int> (v).swap(v);
cout<<"after 压缩 v.capacity():"<<v.capacity()<<endl;
int a[] = {34,56,12,36};
set<int> s(a,a+4);
set<int>::iterator iter = s.begin();
for(;iter!=s.end();++iter)
cout<<*iter<<" ";
cout<<endl;
map<string,int> m;
pair<string,int> val(string("susidian0"),4);
m.insert(val);
m[string("susidian1")] = 1;
m[string("susidian2")] = 2;
map<string,int>::iterator iter = m.begin();
for(;iter != m.end();++iter)
cout<<iter->first<<":"<<iter->second<<endl;
map<string,int>::iterator iter1;
iter1 = m.find(string("susidian1"));
if(iter1 != m.end())
iter1->second = iter1->second +2;
for(iter = m.begin();iter != m.end();++iter)
cout<<iter->first<<":"<<iter->second<<endl;
return 0;
}
3
12 34 36 56
susidian0:4
susidian1:1
susidian2:2
susidian0:4
susidian1:3
susidian2:2
相关文章推荐
- JAVA 反射
- 逆波兰表达式
- 利用栈实现字符匹配~~
- 小强的HTML5移动开发之路(19)——HTML5 Local Storage(本地存储)
- js+css实现返回顶部功能
- 操作系统
- 小强的HTML5移动开发之路(19)——HTML5 Local Storage(本地存储)
- 小强的HTML5移动开发之路(19)——HTML5 Local Storage(本地存储)
- Chrome插件开发实例 – 时间通知(notifications)
- js中substr,substring,indexOf,lastIndexOf的用法小结
- MySQL必知必会笔记(五)插入数据 创建和操纵表
- [Dynamic AX] Static and Dynamic Master Plans
- 获取MS SQL TABLE列名列表
- HI3518E用J-link烧写裸板fastboot u-boot流程
- IOS 第三方库之-MBProgressHUD的使用详解
- nginx不记录不需要的访问日志
- docker web 管理套件 dockerui
- 遗传算法与多目标遗传算法
- 集合collection总结
- Windows下MinGW编译静态Qt I 之实践