代码改变世界

vector

2012-08-11 14:17  残月星辰  阅读(320)  评论(0编辑  收藏  举报

 

标准库 vector 类型

vector 是同一种类型的对象的集合,每个对象都有一个对应的整数索引值。

我们把vector称为容器,是因为它可以包含其他对象,一个容器中所有对象都必须是同一种类型。

vector是一个类模板(class template),使用模板可以编写一个类定义或函数定义,,而用于多个不同数据类型。

例1:

vector<int> ivec;

vector<Sales_item>Sales_vec;

定义vector对象要指定类型和一个变量的列表

上面第一个定义,类型是 vector<int>,该类型既是含有若干int类型对象的vector,变量名为 ivec。

第二个定义,变量名是 Sales_vec,它所保存的元素是Sales_item类型的对象。

 vector不是一种数据类型,而只是一个类模板,可用于定义任意多种类型。vector类型的每一种都指定了其保存元素的类型。因此,vector<int>和vector<string>都是数据类型。

列出 初始化vector构造函数:

 

vector<T> v1; vector 保存类型为T对象
  默认构造函数v1为空
vector<T> v2(v1); v2是v1的一个副本
vector<T> v3(n,i); v3包含n个值为 i 的元素。
vector<T> v4(n); v4 含有值初始化的元素的n个副本。

例2:

View Code
 1 #include<iostream>
 2 #include<vector>//包含头文件
 3 using namespace std;
 4 using std::vector;
 5 int main()
 6 {
 7 
 8      
 9     vector <int> s(10,-1);//10  elements,each initialized to -1
10 
11     for(int i =0;i<s.size();++i)
12     {
13         cout<<s[i]<<endl;
14     }
15 
16      return 0;
17 
18 }

 输出结果:

 

 二 .vector对象的操作

                                                                                    表中列出几种最重要的vector操作

v.empty() 如果v为空,则返回true,否则返回false
v.push_back(t) 在v的末尾增加一个值为t的元素
v[n] 返回v中位置为n的元素
v1=v2 把v1的元素替换为v2中元素的副本
v1==v2 如果v1与v2相等,则返回 true
v.size() 返回v中元素的个数
!=,<,<=,>,>= 保持这些操作符惯有的含义

 

1.使用size_type类型时,必须指出该类型是在哪里定义的。

vector<int>::size_type  //ok

vector::size_type //error

2.向vector添加元素

   push_back 操作接受一个元素值,并将它作为一个新的元素添加到vector对象的后面,也就是“放在”到对象的“后面”:

 例子:

View Code
 1 #include<iostream>
 2 #include<vector>//包含头文件
 3 #include<string>
 4 using namespace std;
 5 using std::string;
 6 using std::vector;
 7 int main()
 8 {
 9     string word;
10     vector<string> text;// empty vector
11     while(cin>>word)
12     {
13        text.push_back(word); // append word to text
14     }
15     return 0;
16         
17 
18 }