C++ primer: C++标准库中vector类模板

C++ primer读书笔记)2013.3.19 zzy @Library4D

 

vector是同一种类型对象的集合,每个对象都有一个对应的整数索引值。vector称为容器。使用前包含vector头文件,并对名字vectorusing申明。

1   #include<vector>
2   using std::vector;

  

vector是一个类模板,使用时通过将类型放在类模板名后的尖括号中来指明类型。如:

1   vector<int>
2 
3   vector<string>
4 
5   vector< vector<int> >

 

定义与初始化,vector支持几种构造函数

 

1   vector<Type>  v1;         //默认构造函数,v1为空
2 
3   vector<Type>  v2(v1);     //v2是v1的一个副本
4 
5   vector<Type>  v3(n, i);     //v3有n个值为i的元素
6 
7   vector<Type>  v4(n);      //v4含有n个元素,每个元素默认初始化

 

几个vector对象定义和初始化的实例:

 1 vector<int> ivec0;
 2 
 3 vector<int> ivec1(10);    //10 elements,each is 0
 4 
 5 vector<int> ivec2(ivec1);
 6 
 7 vector<int> ivec3 = ivec1;
 8 
 9 vector<int> ivec4(10,5);  //10 elements,each is 5
10 
11  
12 
13 vector< vector<int> > ivecvec1(2,ivec2);
14 
15 vector< vector<int> > ivecvec2(2);
16 
17  
18 
19 vector<string> svec1(10);
20 
21 vector<string> svec2(10,"null");

 

vector对象的操作

size成员函数返回vector对象中元素的个数,返回类型为vector<Type>::size_type,也可把该返回值赋值给算数类型。

empty成员函数测试vector对象是否为空,返回bool值。

1 vector<int> v(10);
2 
3 vector<int>::size_type len = v.size();
4 
5 cout << len << endl;
6 
7 if(v.empty())
8 
9     cout << "empty" << endl;

 

push_back函数向vector对象的末尾插入新元素,可以通过[ ]下表操作符来访问vector对象的元素。

 1 string word;
 2 
 3 vector<string> text;
 4 
 5 for(vector<string>::size_type i = 0; i != 10; ++i){
 6 
 7     cin >> word;
 8 
 9     text.push_back(word);
10 
11 }
12 
13 for(vector<string>::size_type i = 0; i != text.size(); ++i){
14 
15     for(string::size_type j = 0; j != text[i].size(); ++j){
16 
17         text[i][j] = toupper(text[i][j]);
18 
19     }
20 
21 }
22 
23 for(vector<string>::size_type i = 0; i != text.size(); ++i){
24 
25     cout << text[i] << endl;
26 
27 }

 

 

 

 

 

posted on 2013-03-19 22:42  Lattexiaoyu  阅读(210)  评论(0编辑  收藏  举报

导航