几个容器比较容易混淆的方法(推荐)
来源:互联网 发布:python 5分钟执行一次 编辑:程序博客网 时间:2024/05/15 06:29
vector:
iterator insert(iterator it, const T& x = T());
void insert(iterator it, size_type n, const T& x);
void insert(iterator it, const_iterator first, const_iterator last);
iterator erase(iterator it);
iterator erase(iterator first, iterator last);
list:
iterator insert(iterator it, const T& x = T()); //list没有下标操作 [],at()
void insert(iterator it, size_type n, const T& x);
void insert(iterator it,const_iterator first, const_iterator last);
void insert(iterator it,const T *first, const T *last);
iterator erase(iterator it);
iterator erase(iterator first, iterator last);
map:
pair<iterator, bool> insert(const value_type& x);
iterator insert(iterator it, const value_type& x);
void insert(const value_type *first, const value_type *last);
iterator erase(iterator it);
iterator erase(iterator first, iterator last);
size_type erase(const Key& key);
set:
pair<iterator, bool> insert(const value_type& x);
iterator insert(iterator it, const value_type& x);
void insert(InIt first, InIt last);
iterator erase(iterator it);
iterator erase(iterator first, iterator last);
size_type erase(const Key& key);
下面的代码是一一对应上面的函数原型的:
vector:
#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main(){
int a[]={1,2,3,4,5,6,7,8,9,10};
vector<int>v(a,a+10);
for(vector<int>::iterator itera=v.begin();itera!=v.end();++itera){
cout<<*itera<<" ";
}
cout<<endl;
vector<int>::iterator it1=v.insert(v.begin()+2,10086);//在指定迭代器前面插入一个元素,返回一个迭代器,指向插入的元素
cout<<*it1<<endl;
for(vector<int>::iterator iterb=v.begin();iterb!=v.end();++iterb){
cout<<*iterb<<" ";
}
cout<<endl;
system("pause");
return 0;
}
#include<string>
#include<vector>
using namespace std;
int main(){
int a[]={1,2,3,4,5,6,7,8,9,10};
vector<int>v(a,a+10);
for(vector<int>::iterator itera=v.begin();itera!=v.end();++itera){
cout<<*itera<<" ";
}
cout<<endl;
v.insert(v.begin()+2,5,10086);
for(vector<int>::iterator iterb=v.begin();iterb!=v.end();++iterb){
cout<<*iterb<<" ";
}
cout<<endl;
system("pause");
return 0;
}
#include<string>
#include<vector>
using namespace std;
int main(){
int a[]={1,2,3,4,5,6,7,8,9,10};
int b[]={11,22,33,44,55,66,77,88,99,1010};
vector<int>va(a,a+10);
vector<int>vb(b,b+10);
for(vector<int>::iterator itera=va.begin();itera!=va.end();++itera){
cout<<*itera<<" ";
}
cout<<endl;
va.insert(va.begin()+5,vb.begin(),vb.end());
for(vector<int>::iterator iterb=va.begin();iterb!=va.end();++iterb){
cout<<*iterb<<" ";
}
cout<<endl;
system("pause");
return 0;
}
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main(){
int a[]={1,2,3,4,5,6,7,8,9,10};
vector<int>v(a,a+10);
for(vector<int>::iterator itera=v.begin();itera!=v.end();++itera){
cout<<*itera<<" ";
}
cout<<endl;
vector<int>::iterator it=v.erase(v.begin()+4);//返回一个迭代器,指向被删除的后一个元素
cout<<*it<<endl;
for(vector<int>::iterator iterb=v.begin();iterb!=v.end();++iterb){
cout<<*iterb<<" ";
}
cout<<endl;
system("pause");
return 0;
}
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main(){
int a[]={1,2,3,4,5,6,7,8,9,10};
vector<int>v(a,a+10);
for(vector<int>::iterator itera=v.begin();itera!=v.end();++itera){
cout<<*itera<<" ";
}
cout<<endl;
vector<int>::iterator it=v.erase(v.begin()+3,v.begin()+6);//返回一个迭代器,指向被删除的后一个元素
cout<<*it<<endl;
for(vector<int>::iterator iterb=v.begin();iterb!=v.end();++iterb){
cout<<*iterb<<" ";
}
cout<<endl;
system("pause");
return 0;
}
list:
#include<iostream>
#include<string>
#include<list>
using namespace std;
int main(){
int a[]={1,2,3,4,5,6,7,8,9,10};
list<int>l(a,a+10);
for(list<int>::iterator itera=l.begin();itera!=l.end();++itera){
cout<<*itera<<" ";
}
cout<<endl;
list<int>::iterator it=l.begin();
for(int i=0;i<3;++i){//因为list的迭代器不支持+操作,不能l.begin()+3
++it;
}
list<int>::iterator ite=l.insert(it,10086);
cout<<*ite<<endl;
for(list<int>::iterator iterb=l.begin();iterb!=l.end();++iterb){
cout<<*iterb<<" ";
}
cout<<endl;
system("pause");
return 0;
}
#include<iostream>
#include<list>
#include<string>
using namespace std;
int main(){
int a[]={1,2,3,4,5,6,7,8,9,10};
list<int>l(a,a+10);
for(list<int>::iterator itera=l.begin();itera!=l.end();++itera){
cout<<*itera<<" ";
}
cout<<endl;
l.insert(l.end(),5,10086);
for(list<int>::iterator iterb=l.begin();iterb!=l.end();++iterb){
cout<<*iterb<<" ";
}
cout<<endl;
system("pause");
return 0;
}
#include<iostream>
#include<list>
#include<string>
#include<vector>
using namespace std;
int main(){
int a[]={1,2,3,4,5,6,7,8,9,10};
int b[]={11,22,33,44,55,66,77,88,99,1010};
list<int>l(a,a+10);
vector<int>v(b,b+10);
for(list<int>::iterator itera=l.begin();itera!=l.end();++itera){
cout<<*itera<<" ";
}
cout<<endl;
l.insert(l.begin(),v.begin()+3,v.begin()+6);
for(list<int>::iterator iterb=l.begin();iterb!=l.end();++iterb){
cout<<*iterb<<" ";
}
cout<<endl;
system("pause");
return 0;
}
#include<iostream>
#include<list>
#include<string>
using namespace std;
int main(){
int a[]={1,2,3,4,5,6,7,8,9,10};
list<int>l(a,a+10);
for(list<int>::iterator itera=l.begin();itera!=l.end();++itera){
cout<<*itera<<" ";
}
cout<<endl;
list<int>::iterator it=l.begin();
for(int i=0;i<3;++i){
++it;
}
list<int>::iterator ite=l.erase(it);//返回一个迭代器,指向被删除的元素的后一个元素
cout<<*ite<<endl;
for(list<int>::iterator iterb=l.begin();iterb!=l.end();++iterb){
cout<<*iterb<<" ";
}
cout<<endl;
system("pause");
return 0;
}
#include<iostream>
#include<list>
#include<string>
using namespace std;
int main(){
int a[]={1,2,3,4,5,6,7,8,9,10};
list<int>l(a,a+10);
for(list<int>::iterator itera=l.begin();itera!=l.end();++itera){
cout<<*itera<<" ";
}
cout<<endl;
list<int>::iterator it1=l.begin();
for(int i=0;i<3;++i){
++it1;
}
list<int>::iterator it2=l.begin();
for(int j=0;j<5;++j){
++it2;
}
list<int>::iterator ite=l.erase(it1,it2);//返回一个迭代器,指向被删除元素的后一个元素
cout<<*ite<<endl;
for(list<int>::iterator iterb=l.begin();iterb!=l.end();++iterb){
cout<<*iterb<<" ";
}
cout<<endl;
system("pause");
return 0;
}
普及一下pair<type,type>的知识:
#include<iostream>
#include<utility>
#include<string>
using namespace std;
int main(){
string name="zhang";
int age=22;
pair<string,int>p(name,age);
cout<<p.first<<"------->"<<p.second<<endl;
system("pause");
return 0;
}
map:
#include<iostream>
#include<string>
#include<map>
using namespace std;
int main(){
map<string,int>m;
string name;
int age;
while(cin>>name>>age){
pair<map<string,int>::iterator,bool>ret=m.insert(make_pair(name,age));
if(!ret.second){
(*ret.first).second++;
}
}
for(map<string,int>::iterator itera=m.begin();itera!=m.end();++itera){
cout<<(*itera).first<<"------->"<<(*itera).second<<endl;
}
system("pause");
return 0;
}
#include<iostream>
#include<string>
#include<map>
using namespace std;
int main(){
map<string,int>m;
string name;
int age;
while(cin>>name>>age){
m.insert(make_pair(name,age));
}
for(map<string,int>::iterator itera=m.begin();itera!=m.end();++itera){
cout<<(*itera).first<<"---->"<<(*itera).second<<endl;
}
cout<<endl;
cin.clear();
map<string,int>::iterator it=m.begin();
++it;
cout<<"input type_value"<<endl;
cin>>name>>age;
map<string,int>::iterator ite=m.insert(it,make_pair(name,age));
cout<<(*ite).first<<"------->"<<(*ite).second<<endl;
for(map<string,int>::iterator iterb=m.begin();iterb!=m.end();++iterb){
cout<<(*iterb).first<<"----->"<<(*iterb).second<<endl;
}
system("pause");
return 0;
}
#include<string>
#include<map>
using namespace std;
int main(){
map<string,int>m;
map<string,int>mm;
string name;
int age;
cout<<"第一组数据"<<endl;
while(cin>>name>>age){
m.insert(make_pair(name,age));
}
for(map<string,int>::iterator itera=m.begin();itera!=m.end();++itera){
cout<<(*itera).first<<"------->"<<(*itera).second<<endl;
}
cout<<endl;
cout<<"第二组数据"<<endl;
cin.clear();
while(cin>>name>>age){
mm.insert(make_pair(name,age));
}
for(map<string,int>::iterator iterb=mm.begin();iterb!=mm.end();++iterb){
cout<<(*iterb).first<<"------->"<<(*iterb).second<<endl;
}
cout<<endl;
cout<<"把第二组数据插入到第一组数据得到:"<<endl;
mm.insert(m.begin(),m.end());
for(map<string,int>::iterator iterc=mm.begin();iterc!=mm.end();++iterc){
cout<<(*iterc).first<<"------>"<<(*iterc).second<<endl;
}
cout<<endl;
system("pause");
return 0;
}
#include<string>
#include<map>
using namespace std;
int main(){
map<string,int>m;
string name;
int age;
while(cin>>name>>age){
m.insert(make_pair(name,age));
}
for(map<string,int>::iterator itera=m.begin();itera!=m.end();++itera){
cout<<(*itera).first<<"----->"<<(*itera).second<<endl;
}
cout<<endl;
cout<<"*************"<<endl;
map<string,int>::iterator it=m.begin();
++it; //map的迭代器也是不能+操作的,只能用++操作
map<string,int>::iterator ite=m.erase(it);
cout<<(*ite).first<<"----->"<<(*ite).second<<endl;//返回一个迭代器,指向被删除元素的下一个
cout<<"**************"<<endl;
for(map<string,int>::iterator iterb=m.begin();iterb!=m.end();++iterb){
cout<<(*iterb).first<<"-------->"<<(*iterb).second<<endl;
}
cout<<endl;
system("pause");
return 0;
}
#include<string>
#include<map>
using namespace std;
int main(){
map<string,int>m;
string name;
int age;
while(cin>>name>>age){
m.insert(make_pair(name,age));
}
for(map<string,int>::iterator itera=m.begin();itera!=m.end();++itera){
cout<<(*itera).first<<"----->"<<(*itera).second<<endl;
}
map<string,int>::iterator it1=m.begin();
map<string,int>::iterator it2=m.begin();
for(int i=0;i<3;i++){
++it1;
}
for(int j=0;j<6;++j){
++it2;
}
cout<<"***************************"<<endl;
map<string,int>::iterator ite=m.erase(it1,it2);//返回一个迭代器,指向被删除元素的下一个
cout<<(*ite).first<<"----->"<<(*ite).second<<endl;
cout<<"***************************"<<endl;
for(map<string,int>::iterator iterb=m.begin();iterb!=m.end();++iterb){
cout<<(*iterb).first<<"------>"<<(*iterb).second<<endl;
}
system("pause");
return 0;
}
#include<string>
#include<map>
using namespace std;
int main(){
map<string,int>m;
string name;
int age;
while(cin>>name>>age){
m.insert(make_pair(name,age));
}
for(map<string,int>::iterator itera=m.begin();itera!=m.end();++itera){
cout<<(*itera).first<<"----->"<<(*itera).second<<endl;
}
cout<<"input the keytype you want to delete"<<endl;
cin.clear();
cin>>name;
int t=m.erase(name);
cout<<t<<endl;
cout<<"***************"<<endl;
for(map<string,int>::iterator iterb=m.begin();iterb!=m.end();++iterb){
cout<<(*iterb).first<<"----->"<<(*iterb).second<<endl;
}
system("pause");
return 0;
}
#include<string>
#include<set>
using namespace std;
int main(){
set<string>s;
string name;
while(cin>>name){
s.insert(name);
}
for(set<string>::iterator itera=s.begin();itera!=s.end();++itera){
cout<<*itera<<" ";
}
cout<<endl;
system("pause");
return 0;
}
- 几个容器比较容易混淆的方法(推荐)
- Math类几个容易混淆的方法
- 软件测试中比较容易混淆的几个概念
- 几个容易混淆的逻辑运算
- STL中容器的几个容易混淆的成员函数-size, capacity, resize, reserve
- STL中容器的几个容易混淆的成员函数-size, capacity, resize, reserve
- STL中容器的几个容易混淆的成员函数-size, capacity, resize, reserve
- easyrec推荐系统学习过程中容易混淆的几个概念
- 容易混淆的几个名字详解
- .Net中几个容易混淆的概念
- java几个容易混淆的问题
- jsp容易混淆的几个地方
- OpenMP: 几个容易混淆的函数
- 几个容易混淆的重定向
- sql语句,几个容易混淆的关键词
- OpenMP中几个容易混淆的函数
- 开发中容易混淆的几个概念
- 自己几个容易混淆的概念:
- 黑马程序员-java多线程,线程同步
- EXT的自定义事件使用
- str相关的函数实现
- linux logrotate 配置及测试
- ColorMatrix (图像小学...)
- 几个容器比较容易混淆的方法(推荐)
- weka基础上 数据挖掘模型研究评估 过程
- ~~搜索!
- ArrayAdapter SimpleAdapter SimpleCursorAdapter 区别
- DLL头文件的格式和应用
- Direct3D 11 Deployment for Game Developers
- MFC为按钮添加BITMAP
- 存储管理--交换技术
- Android图片处理(Matrix,ColorMatrix)