vector
2012-08-11 14:17 残月星辰 阅读(318) 评论(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:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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对象的后面,也就是“放在”到对象的“后面”:
例子:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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 }