特殊函数:swap() ,sort() (不能用 reverse())
构造Vector:
#include<iostream>
#include<vector>
using namespace std;
int main()
{
//1)
vector<int> v1;
int a;
for(int i=0;i<10;i++)
{
cin>>a;
v1.push_back(a); // v1为空,只能在末尾添加
}
for(int i=0;i<10;i++)
{
cout<<v1[i]<<endl;
}
//2)
vector<int> v2(3); // 默认值为0
vector<int>::size_type i; // 定义 int i,有warning
for(i=0;i<v2.size();i++)
{
cin>>v2[i];
}
//3)
//vector<int> v3(10,1); //a[10],且所有值初始化为1
//4)
//二维数组
// 方式一:
vector<int> v4[5]; //a[5][],每个v4[i]都是一个空vector
int a;
for(int i=0;i<5;i++)
{
for(int j=0;j<10;j++) // 定义a[5][10]
{
cin>>a;
v4[i].push_back(a);
}
}
//5)
// 方式二:
/*
vector<vector<int>> v5(5);
for(int i=0;i<5;i++)
{
v5[i].resize(10);
}*/
vector<vector<int>> v5(5,vector<int>(10)); // 代替上面三行注释
for(int i=0;i<v5.size();i++) // warning: i
{
for(int j=0;j<v5[0].size();j++)
{
cin>>v5[i][j];
}
}
//6)
// vector复制
vector<int> v6(v2);
vector<int> v7(v2.begin(),v2.end());
vector<int> v8(v2.begin(),v2.begin()+3);
return 0;
}
相关函数及迭代器:
#include<iostream>
#include<vector>
#include<iterator>
using namespace std;
int main()
{
vector<int> v(5);
vector<int>::iterator it;
for(it = v.begin();it!=v.end();it++)
{
cin>>*it;
}
for(it = v.begin();it!=v.end();it++)
{
cout<<*it<<endl;
}
// 演示其部分函数
// v.clear()
v.clear(); //空vector
cout<<v.size()<<endl; // 0
// v.resize(); v.reserve();
v.resize(10); // v 总共10个,新增的5个默认值为0
cout<<v.size()<<endl;
v.reserve(5); // v 再增加5个,新增的5个默认值为0
cout<<v.size()<<endl;
// v.assign() , 赋值
vector<int> v1;
v1.assign(v.begin(),v.end()); // v1可以开始为空
v1.assign(5,10); //相当于定义 v1(5,10)
cout<<v1[4]<<endl;
// v.empty(), v.back(), v.front()
while(!v.empty())
{
cout<<v.back()<<endl;
v.pop_back();
}
cout<<v.size()<<endl;
// v.insert(), v.erase();
it = v.begin();
v.insert(it+2,10); // 将10 插到(it+2)的位置,即v[2] = 10,size = size+1
it = v.begin();
v.insert(it+2,2,10); // 插2个10 到 (it+2)的位置
// v.rbegin(); v.rend(); 没有reverse()函数
// 逆序输出
vector<int>::reverse_iterator r_it;
for(r_it = v.rbegin(); r_it != v.rend(); r_it++) // 注意 r_it++
{
cout<<*r_it<<endl;
}
return 0;
}
另:
vector 与 vector<*int> 区别:
http://www.jb51.net/article/41918.htm
rbegin(), rend()的详解:
http://blog.youkuaiyun.com/kjing/article/details/6936325