#include<cstdio>
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
//vec.end()指向的是最后一个元素的下一个位置
int a[5]={1,2,3,4,5};
vector<int>vec1(a,a+5);
int b[5]={6,7,8,9,10};
vector<int>vec2(&b[0],&b[5]); //问师哥问题、关于b[5]
//用向量初始化向量,还可用向量的一部分去初始化另一个向量
vector<int>vec4(vec1);
for(int i=0;i<vec4.size();i++)
{
cout<<vec4[i]<<" ";
}
cout<<endl;
//交换两个向量的元素
vec1.swap(vec2);
vector<char>vec3;
int e[]={11,12,13,14,15};
char f[]={'a','b','c','d','e'};
cout<<sizeof(f)/sizeof(char)<<endl;
//测试首尾元素、是否为空
cout<<"向量vec1中首元素为"<<vec1.front()<<endl;
cout<<"向量vec1中末元素为"<<vec1.back()<<endl;
cout<<"向量vec2中首元素为"<<vec2.front()<<endl;
cout<<"向量vec2中末元素为"<<vec2.back()<<endl;
cout<<"向量vec1是否为空,是空返回1,不空返回0 "<<vec1.empty()<<endl;
cout<<"向量vec2是否为空,是空返回1,不空返回0 "<<vec2.empty()<<endl;
cout<<"向量vec3是否为空,是空返回1,不空返回0 "<<vec3.empty()<<endl;
//下标访问元素
for(int i=0;i<vec2.size();i++)
{
cout<<vec2[i]<<" ";
}
cout<<endl;
//迭代器访问元素
vector<int>::iterator c;
for(c=vec1.begin();c!=vec1.end();c++)
{
cout<<*c<<" ";
}
cout<<endl;
//直接逆序输出
vector<int>::reverse_iterator k;
for(k=vec1.rbegin();k!=vec1.rend();k++)
{
cout<<*k<<" ";
}
cout<<endl;
//元素翻转(反转)后输出
reverse(vec2.begin(),vec2.end());
vector<int>::iterator d;
for(d=vec2.begin();d!=vec2.end();d++)
{
cout<<*d<<" ";
}
cout<<endl;
//末尾添加 并 删除性访问
cout<<vec3.size()<<endl;
for(int i=0;i<sizeof(f)/sizeof(char);i++)
{
vec3.push_back(f[i]);
}
cout<<vec3.size()<<endl;
int g=vec3.size();
// for(int i=0;i<vec3.size();i++)
// {
// cout<<vec3.back()<<" ";
// vec3.pop_back();
// }
// for(int i=0;i<g;i++)
// {
// cout<<vec3.back()<<" ";
// vec3.pop_back();
// }
// cout<<endl;
//重定义大小(若缩小,删末元素)
vec3.resize(4);
vector<char>::iterator h;
for(h=vec3.begin();h!=vec3.end();h++)
{
cout<<*h<<" ";
}
//插入与删除
cout<<endl;
vec3.insert(vec3.begin()+1,'f'); //位置前插
vec3.erase(vec3.begin()+3);
for(int i=0;i<vec3.size();i++)
{
cout<<vec3[i]<<" ";
}
cout<<endl;
vec1.clear();
cout<<"向量vec1是否为空,是空返回1,不空返回0 "<<vec1.empty()<<endl;
//大范围删除
vec2.erase(vec2.begin()+1,vec2.end()-1);
for(int i=0;i<vec2.size();i++)
{
cout<<vec2[i]<<" ";
}
cout<<endl<<"pond";
return 0;
}