标签:不包含 tor 括号 n个元素 nbsp 初始化 实例化 初始化过程 方法
vector常被称为容器,因为vector容纳着其他元素,所有元素的类型都相同。每个元素都有一个与之对应的索引,索引用于访问元素。简单地说,vector是一个能存放许多类型数据的动态数组,其元素的位置在内存中是连续的。
包含头文件:
#include <vector> using namespace std;
vector是类模板,实例化时需要提供vector内所存放对象的类型:
vector<int> ivec; vector<string> file;
定义和初始化vector对象
vector<T> v1;//v1是一个空vector,它潜在的元素是T类型 vector<T> v2(v1);//等价于vector<T> v2=v1 vector<T> v3(n,val);//v3包含了n个元素,每个都为val vector<T> v4(n);//v4有n个执行了值初始化的元素 vector<T> v5{a,b,c,d……};//v5包含了初始值个数的元素,每个元素被赋予相应的初始值,等价于vector<T> v5={a,b,c,d……}
vector<T> v1,v1不含任何元素,是一个空的容器,看起来似乎没什么用,但是程序在运行时可以很高效地往vector中添加元素,事实上这是一个常用的方法,比定义了容器大小的更为高效。
列表初始化还是元素数量?
vector<T> v1(10);//v1有10个元素,每个的值都是0 vector<T> v2{10};//v2有1个元素,值为10 vector<T> v3(10,1);//v3有10个元素,每个值为1 vector<T> v4(10,1);//v4有2个元素,值分别为10和1
如果用的是圆括号,可以说值是用来构造vector对象的;如果是花括号,可以说我们想列表初始化该vector对象,也就是说,初始化过程会尽可能地把花括号内的值当成元素初始值来处理,只有类型不对应时才会考虑其他初始化方式。如vector<string> v8{10,"hi"};//v8中有10个值为"hi"的元素。
向vector对象中添加元素
vector的成员函数push_back负责把一个值当成vector对象的尾元素压到vector对象的尾端。
vector<int> v2;//空的vector对象 for(int i=0;i!=100;i++) v2.push_back(i);//依次把整数值放到v2尾端
其他vector操作
v.empty();//如果v不含任何元素,返回真;否则返回假 v.size();//返回v中元素的个数 v[n];//返回v中第n个位置上的元素的引用 <,<=,>,>=;//以字典顺序进行比较
注意:vector对象的下标运算符可用于访问已存在的元素,而不能用于添加元素。
vector<int> ivec;//Iveco为空的vector对象 for(int i=0;i!=10;++i) ivec[i]=i;//错误,ivec不包含任何元素
标签:不包含 tor 括号 n个元素 nbsp 初始化 实例化 初始化过程 方法
原文地址:https://www.cnblogs.com/cs0915/p/12275997.html