vector

作者: 吴健民IT | 来源:发表于2021-02-17 16:37 被阅读0次

STL中的函数都必须使用:变量名.函数名()表示,例如vi.push_back();




vector翻译为向量,使用“变长数组”的叫法更容易理解。在考试题中,有时会碰到普通数组会超内存的情况,这时候使用vector会让问题的解决便捷许多。

使用vector要添加:#include<vector>     using namespace std;

定义:vector<typename> name;     这个定义其实相当于一维数组name[SIZE],只不过其长度可以变化,这里的typename可以是任何类型,例如int,double,char,结构体等,也可以是STL容器但在定义时记得在>>符号之间加上空格

举个例子:vector<int> name;

                  vector<double> name;

                  vector<vector<int> > name;               //>>之间要加空格,多用于二维数组(矩阵)----------即name[ ] 中的每一个元素都是一个vector(所以还要定义一个vector一维向量,然后将 v push_back到name 向量中),初学者可以把二维vector数组当作两个维都可变长的二维数组。--------------------------------------------见下例题

vector容器内元素的访问:

(1)通过下标访问

对一个定义为vector<typename>vi的vector容器来说,直接访问vi[index]即可 (如vi[0]、vi[1]),这里的下标是从0到vi.size()-1

(2)通过迭代器访问

迭代器可以理解为一种类似指针的东西,其定义为vector<typename>::iterator it;     it 就是vector<typename>::iterator型的变量,并且通过 *it来访问vector里的元素


既然上面提到了begin()函数的作用为取 vi 的首元素地址,那么这里就要提到end()函数。和begin()不同的是,end()并不是取vi的尾元素地址,而是取尾元素地址的下一个地址,end()作为迭代器末尾标志,不储存任何元素。

毕竟美国人的思维比较习惯左闭右开。

最后再提一下,在常用STL容器中,只有在vectorstring中,才允许使用vi.begin()+3这种迭代器加上整数的写法。

pop_back()

有添加就有删除元素,pop_back()用以删除vector的尾元素,时间复杂度是O(1)

clear() 函数: 用来删除vector中的所有元素

insert() : 

             insert(it,x)用来向vector的任意迭代器 it 处插入一个元素x


erase()有两种用法:     ①删除单个元素       ②删除一个区间内的所有元素

相关文章

  • c++常用数据结构

    问题:vector与数组的区别? 1、vector vector v;//创建vector v....

  • 指针

    ①动态指针问题. vector * pvt = new vector [100]; vector * tt; tt...

  • 2021-12-01 opencv findContours a

    std::vector contours; std::vector hi...

  • 13.C++ vector 操作

    vector初始化 vector大小 数组方式操作vector 迭代器方式操作vector 反向迭代器操作vect...

  • c++零散知识

    1、vector vector对象内存增长原理,当向vector添加新元素而vector没有足够的内存保存新元素时...

  • vector

    一、vector介绍:可边长数组1、vector的定义:vector name;注:vecto...

  • Collection-Vector

    jdk版本:1.8.0_77参考文档:jdk 1.8 docs Vector类图 Vector特点 Vector对...

  • vector 简单用法

    vector 简单用法 数组传进vector方式: int a[3]={1,2,3} vector test;...

  • 点乘与叉乘

    public static Vector3 Cross(Vector3 lhs, Vector3 rhs);叉乘的...

  • 1.两数之和 by 2018-04-19

    class Solution {public:vector twoSum(vector & nums, int ...

网友评论

      本文标题:vector

      本文链接:https://www.haomeiwen.com/subject/thyixltx.html