vector:可变大小数组。支持快速随机访问(索引:下标)。在尾部或者之外的位置插入或者删除元素可能很慢。
vector能容纳绝大多数类型的对象作为其元素,但是因为引用不是对象,所以不存在包含引用的vector;需要强调的是在早期的C++标准中vector中是vector,则其定义形式为vector<vector<int> >,即外层vector对象的右尖括号和其他元素之间添加一个空格;而C++11标准则不需要。
定义和初始化vector对象:
vector<T> v1; //默认构造
vector<T> v2(v1); //拷贝构造
vector<T> v2 = v1; //拷贝构造
vector<T> v3(n,val); //v3包含了n个元素,每个元素为val
vector<T> v4(n); //值初始化 //v4含有n个元素,初始值由模板参数决定
vector<T> v5{a,b,c,d...}; //vs2012中还不支持以下两种方式
vector<T> v6 = {a,b,c...};
push_back()为vector中的成员函数
vector<int> vec1;
for (size_t i = 0;i < 100;++i)
{
vec1.push_back(i);
}
向vector对象中添加元素的编程假定(只能用while循环)
string text;
vector<string> vec2;
while (cin>>text)
{
vec2.push_back(text);
}
参考文章莫问的代码
代码:
#include
#include
#include
#include
using namespace std;
int main()
{
cout<<"1---------------------------------------------------------------------------------------"<
vec1; vector
vec2(vec1); vector
vec3 = vec1; vector
vec4(10,5); vector
vec5(10); //vector
vec6(10); //vector
vec6{1, 2, 3, 5}; //vs 2012中不支持 //vector
vec7 = {1, 2, 3, 5}; cout<<"2---------------------------------------------------------------------------------------"<
vec9; while (cin>>text) { vec9.push_back(text); } cout<<"3---------------------------------------------------------------------------------------"<
::size_type a = vec9.size(); cout<<"vec9 size : "<
<
score(10,0); int grade = 0; while (cin>>grade) { if (grade >=0 && grade <=100) { ++score[grade/10]; } } cout<<"5---------------------------------------------------------------------------------------"<