c++ vector数据类型

一、简介

vector是定义在C++标准模板库。vector可以理解为是一个能够存放任意类型动态数组,能够增加和删除元素,但是一个容器中的对象必须是同一种类型

和数组的相似点:

1、vector为它们的元素使用连续的存储位置,也就意味着可以通过指针的偏移量来进行访问某一个元素。

2、与其他动态序列容器(队列、链表)相比,向量访问其元素(就像数组一样)非常高效,并且从末尾添加或删除元素的效率相对较高。但对于涉及在末尾以外的位置插入或删除元素的操作,vector的性能相对较差

不同点:

1、由于vector能够自动的管理内存,我们不需要考虑内存的增长和释放、具有很好的安全性。

注意:vector实际所占空间并不一定等于存储有效元素的空间。因为重新分配空间需要一定的时间,考虑到运行效率,设计人员并不是在每次添加或者删除元素都重新分配,而是会分配一些额外的存储空间以适应可能的增长。

二、声明和初始化

数组(array)定义时候,大小必须是常量表达式(constant expression),也就是一个不需要在运行时求值的表达式。

const int seq_size = 18;
int pell_seq[seq_size];

也可以让编译器根据初始值的数量,自动计算出array的大小:

int elem_seq[] = {1,2,3};

  使用vector之前必须在程序前的库包含中包含相应的头文件,如下:

#include<vector>
using std::vector;

  vector定义了几种构造函数,所以它提供了几种初始化的方式,如下:

vector<T>    v1;                vevtor保存类型为T的对象。默认构造函数v1为空。
vector<T>    v2(v1);            v2是v1的一个副本,v1和v2的元素类型必须相同
vector<T>    v3(n,i);           v3包含n个值为i的元素
vector<T>    v4(n);             v4包含初始化的元素的n个副本,默认元素值为0

https://cplusplus.com/reference/vector/vector/vector/

三、添加、删除和索引元素

push_back(value); //在最后面添加一个元素
pop_back(value); //将最后面的元素删除,不会返回元素的值

value[n]; //下标访问法,0~n~size-1
value.at[n]; //下标访问法,0~n~size-1,使用at访问更加安全一些,因为at访问的时候将在运行期间检查非法的索引,这种检查的代价是运行时间更长
value.front(); //返回最前面的一个元素
value.back(); //返回最后面的一个元素

四、其他常用操作

v.empty();    //如果v为空,则返回true,否则返回false
v.size();     //返回v中元素的个数

五、大全

 

ref:

http://www.cplusplus.com/reference/vector/vector/

C++标准库vector类型的使用和操作总结 - !Vincent - 博客园C++ vector类型要点总结 - Class Xman - 博客园C++标准库vector类型的使用和操作总结 - !Vincent - 博客园

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值