初学acmer--c++的泛型库(一)向量

来源:互联网 发布:机器人焊接软件 编辑:程序博客网 时间:2024/06/08 00:11

1.元素的插入

#include<vector>
#include<iostream>
using namespace std;
int main()
{
vector<int> v(3);//注意声明vector容器个数时用的是"()",不是"[]",区分下面的v[0]!!! 
vector<int>::iterator it;
v[0]=2;
v[1]=7;
v[2]=9;
for(it=v.begin();it!=v.end();it++)
cout<<*it<<' ';
cout<<endl;
v.insert(v.begin(),8);    
for(it=v.begin();it!=v.end();it++)
cout<<*it<<' ';
cout<<endl;
v.insert(v.begin()+2,5);//v.insert(x,y);其中y是所要插入的数据,而x是y插入后所在的位置 ,比如这句中5最终在v.[2]位置上,即第三个位置上 
for(it=v.begin();it!=v.end();it++)//其中要注意的是x是元素的迭代器位置,而不是元素的下标,即v.insert(v[0],8)是错误的!! 
cout<<*it<<' ';
cout<<endl;
v.insert(v.end(),100);
for(it=v.begin();it!=v.end();it++)
cout<<*it<<' ';
cout<<endl;
return 0;

}


2.元素的删除

#include<vector>
#include<iostream>
using namespace std;
int main()
{
vector<int> v(10);
vector<int>::iterator it;
for(int i=0;i<10;i++){
v[i]=i;
}
for(it=v.begin();it!=v.end();it++)
{
cout<<*it<<' '; 
}
cout<<'\n';
v.erase(v.begin()+2);  //删除第3个位置上(即v[2])的数 
for(it=v.begin();it!=v.end();it++)
{
cout<<*it<<' '; 
}
cout<<'\n';
v.erase(v.begin()+1,v.begin()+4); // 从v[1]开始删除,一直删到v[4],但v[4]不删除,即一共删了(4-1=3)个数据 
for(it=v.begin();it!=v.end();it++)
{
cout<<*it<<' '; 
}
cout<<'\n';
v.clear();//一次性删除vector容器里所有数据 
cout<<v.size()<<endl;//v.size()得到v包含的个数 
return 0;
}

3.使用reverse算法反向排列

#include<vector>
#include<algorithm>//reverse函数在头文件algorithm中 
#include<iostream>
using namespace std;
int main() 
{
vector<int> v(10);
 vector<int>::iterator it;
   for(int i=0;i<v.size();i++)
   v[i]=i;
     for(it=v.begin();it!=v.end();it++)
     cout<<*it<<" ";
     cout<<endl;
    reverse(v.begin()+2,v.end()-3);//reverse(x,y)将x位置到y位置这段数据倒置 
     for(it=v.begin();it!=v.end();it++)
     cout<<*it<<" ";
     cout<<endl;
return 0;
}


4.使用sort算法对向量元素进行排序(默认从小到大排序)

#include<vector>
#include<algorithm>//sort函数在头文件algorithm中
#include<iostream>
#include<cstdlib>
#include<ctime> 
using namespace std;
int main() 
{
vector<int> v(10);
 vector<int>::iterator it;
 srand(time(0));
   for(int i=0;i<v.size();i++)
   v[i]=rand()%100+1;//生成1~100之间的随机数
     for(it=v.begin();it!=v.end();it++)
     cout<<*it<<" ";
     cout<<endl;
    sort(v.begin(),v.end());//sort(x,y)将x位置到y位置这段数据从小到大排序 
     for(it=v.begin();it!=v.end();it++)
     cout<<*it<<" ";
     cout<<endl;
return 0;
}

5.使用sort算法对向量元素进行排序(从大到小排序)

#include<vector>
#include<algorithm>//sort函数在头文件algorithm中
#include<iostream>
#include<cstdlib>
#include<ctime> 
using namespace std;
bool Comp(const int &a,const int &b)
{
    if(a!=b) return a>b;//若改为a<b
    else return a>b;//则为从小到大
}
int main() 
{
vector<int> v(10);
 vector<int>::iterator it;
 srand(time(0));
   for(int i=0;i<v.size();i++)
   v[i]=rand()%100+1;
     for(it=v.begin();it!=v.end();it++)
     cout<<*it<<" ";
     cout<<endl;
    sort(v.begin(),v.end(),Comp);//sort(x,y)将x位置到y位置这段数据从大到小排序
     for(it=v.begin();it!=v.end();it++)
     cout<<*it<<" ";
     cout<<endl;
return 0;
}

原创粉丝点击