#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <vector>
#include <assert.h>
const int m = 300;
#define max 0x3f3f3f3f
int a[10];
using namespace std;
int main()
{
vector<int> vc;
int n =10,k;
while(n--)
{
cin>>k;
vc.push_back(k);
}
vector<int>::iterator itr = vc.begin();
sort(itr,vc.end());
for(itr = vc.begin(); itr!=vc.end(); itr++)
{
cout<<*itr<<" ";
}
for(vector<int>::size_type i = 0;i<vc.size();i++){ //遍历输出 是不是很像数组
cout<<vc[i]<<" ";
}
cout<<endl;
vector<string> v(5, "hello");//初始化5个hello;
vector<string> v2(v.begin(), v.end());//将v拷贝给v2
assert(v == v2);//断言
cout<<"> Before operation"<<endl;
for(vector<string>::const_iterator it = v.begin(); it < v.end(); ++it)//常量迭代器,不可改变元素值
cout<<*it<<endl;
v.insert(v.begin() + 3, 4, "hello, world");//在第3个后插入4和hello,world ->6
cout<<"> After insert"<<endl;
for(vector<string>::size_type i = 0; i < v.size(); ++i)
cout<<v[i]<<endl;
vector<string>::iterator it = v.erase(v.begin() + 3, v.begin() + 6);//删除下标2->5 hello world
//删除某范围内的元素时:返回值也表示一个迭代器,指向最后一个删除元素的下一个元素;
assert(*it == "hello, world");//最后一个hello,world
cout<<*it<<endl;//指向
cout<<"> After erase"<<endl;
for(vector<string>::size_type i = 0; i != v.size(); ++i)
cout<<v[i]<<endl;
assert(v.begin() + v.size() == v.end());
assert(v.end() - v.size() == v.begin());
assert(v.begin() - v.end() == -vector<string>::difference_type(v.size()));
//两个迭代器之间的距离,表示一个容器的最大容量,对连续空间的容器而言,头尾之间的距离就是其最大容量。
return 0;
}
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交