vector用法整理

Posted cs0915

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vector用法整理相关的知识,希望对你有一定的参考价值。

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不包含任何元素

 

以上是关于vector用法整理的主要内容,如果未能解决你的问题,请参考以下文章

Java中vector用法整理

C++ List的用法(整理)

IOS开发-OC学习-常用功能代码片段整理

VS2015 代码片段整理

ctmp在java中的用法?

c_cpp 加载源图像固定用法(代码片段,不全)