初始化vector数组以及使用

标准库容器vector
表示对象的集合,可存放任意类型的数据,但类型必须相同。
使用需要包含头文件#include

原理
vector是一个动态增长的数组,里面有一个指针指向一片连续的内存空间在增加元素时,如果超过自身最大的容量,vector则将自身的容量扩充为原来的两倍。扩充空间需要经过的步骤:自动申请一片更大的空间(空间配置器),将全部元素移动到新的空间,释放旧的内存空间,因此扩充空间的开销较大。一旦vector空间重新配置,则指向原来vector的所有迭代器都失效了,因为vector的地址改变了。

vector数组的初始化:
vector< T > vec  空vector,默认初始化
vector< T> vec1= { 1,2,3,4,5,6,7,8,9,10,11,12 }
vector< T> vec2{ 1,2,3,4,5,6,7,8,9,10,11,12 }
vector< T > vec3( n, value)  n个值为value的重复元素

vector< int > month { 12 }
像这样的声明会有歧义,究竟是0位置有一个元素12还是大小是12,C++11后给了初始化列表优先权,所以这里是只有一个值为12的元素,要想声明一个大小为12的vector需要使用圆括号: vector< int > month( 12 )
vector可使用范围for语句来遍历,可使用auto让编译器自动推导类型

int sum = 0forauto x : num )
	sum += x;

添加元素

vector<int> vec;
vec.push_back(1);				//将1添加到vec后面;

特别注意
vector对象(以及string对象)的下标运算符可用于访问已存在的元素,不能用于在指定位置添加元素。

你可能感兴趣的:(c++)