#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define inf 0x3f3f3f3f
#define eps 1e-10
#define bug(a) cout<<"# "<<a<<endl;
#define bug2(a,b) cout<<"# "<<a<<" # "<<b<<endl;
#define bug3(a,b,c) cout<<"# "<<a<<" # "<<b<<" # "<<c<<endl;
vector<int> v;
void test1()
{
for(int i=0;i<7;i++)
v.push_back(i);
try
{
int iVa1=v[7];
int iVa2=v.at(7);
}
catch(const exception& e)
{
cout<<e.what();
}
}
void test2()
{
v.clear();
/*末尾添加元素*/
for(int i=1;i<=10;i++)
v.push_back(i);
/*两种方式访问vector*/
for(int i=0;i<v.size();i++)
cout<<v[i]<<" "; bug("");
vector<int>::iterator it;
for(it=v.begin();it!=v.end();++it)
cout<<*it<<" ";
bug("");
/*删除尾元素,访问尾元素*/ //现成的
bug((v.back()));
v.pop_back();
bug(v.back());
v.erase(v.end()-1); //想删哪删哪
bug(v.back());
/*删除首元素,访问首元素*/ //删除用erase 想删哪删哪
bug(v.front());
v.erase(v.begin());
bug(v.front());
}
void test3()
{
v=vector<int>(); //赋值清空
for(int i=0;i<v.size();i++)
cout<<v.at(i)<<" ";
cout<<endl;
for(int i=0;i<=10;i++)
v.push_back(i);
for(int i=0;i<v.size();i++)
cout<<v.at(i)<<" ";
cout<<endl;
v.insert(v.begin()+1,1000); //直接把数插在这个位置
for(int i=0;i<v.size();i++)
cout<<v.at(i)<<" ";
cout<<endl;
vector<int>::iterator it;
it=v.erase(v.begin()+5); //直接删除这个位置的数,返回值是这个位置的后一个位置
cout<<*it<<endl;
for(int i=0;i<v.size();i++)
cout<<v.at(i)<<" ";
cout<<endl;
it=v.erase(v.end()-5); //如果删的是最后一个数,返回值就是被删掉的这个数的位置
cout<<*it<<endl;
for(int i=0;i<v.size();i++)
cout<<v.at(i)<<" ";
cout<<endl;
}
void insertsort(int x)
{
v.insert(lower_bound(v.begin(),v.end(),x),x);
}
void test4()
{
/*插入时实现自动排序 升序*/
v.clear();
int a[]={1,5,8,4,8,9,5};
for(int i=0;i<7;i++)
insertsort(a[i]);
for(int i=0;i<v.size();i++)
cout<<v[i]<<" ";
cout<<endl;
}
int main()
{
//test1();
//test2();
//test3();
test4();
return 0;
}
STL——vector
最新推荐文章于 2024-05-08 21:50:09 发布