向量 vector
vector 是STL中最常用的容器,其特点是占用连续内存空间,对数据的随机访问支持的很好,既可以像数组那样被访问元素的下标来访问,也可以使用其提供的成员函数来at()来访问。向量是一个按照尾部开口设计的容器,因此在其尾部进行数据的输入和输出效率最高。向量定义于头文件 vector,命名于名字空间 std。
1. 1 vector 对象的定义和初始化
vector 有多个构造函数,用户可以根据需要在程序中选择,常用的构造函数如下:
构造函数 | 作用 |
vector(); | 创建一个没有任何元素的空向量 |
vector(vector&& _Right); | 创建一个向量并且用向量_Right初始化该向量 |
vector(size_type Count ); | 创建一个大小为Count的向量 |
voctor(size_type _Count,const Type& _val) | 创建一个大小为_Count的向量,该向量所有元素初始化为_val |
template <class InputIterator> vector(InputIterator _First,InputIterator _Last); |
创建一个向量,并以迭代器_First和_Last之间的元素初始化该向量 |
另外,vector重载了运算符operator=,可以以复制的方式在两个vector对象之间复制数据。
范例:测试上表中的构造函数
#include<vector>
#include<iostream>
using namespace std;
int main()
{
vector<int>::iterator v1_Iter,v2_Iter,v3_Iter,v4_Iter,v5_Iter,v6Iter;
//创建一个长度为3初始值为0的int型向量
vector<int>v1(3);
cout<<"v1=";
for(v1_Iter=v1.begin();v1_Iter!=v1.end();v1_Iter++)
cout<<""<<*v1_Iter<<endl;
//创建一个长度为5初始值为2的int型向量
vector<int>v2(5,2);
cout<<"v2=";
for(v2_Iter=v2.begin();v2_Iter!=v2.end();v2_Iter+