码迷,mamicode.com
首页 > 其他好文 > 详细

vector用法整理

时间:2020-02-08 13:28:52      阅读:60      评论:0      收藏:0      [点我收藏+]

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

 

vector用法整理

标签:不包含   tor   括号   n个元素   nbsp   初始化   实例化   初始化过程   方法   

原文地址:https://www.cnblogs.com/cs0915/p/12275997.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!