C++线性序列容器<vector>简单总结

vector是一个长度可变的数组,使用的时候无须声明上限,随着元素的增加,Vector的长度会自动增加;Vector类提供额外的方法来增加、删除元素,比数组操作高效。

头文件:#include <vector>

命名空间:using namespace std:vector

构造函数

vector<int>vec_int;         // 创建一个整形元素的vector

vector<string>vec_string;    // 创建一个string元素的vector

vector<Mystruct>vec_Mystruct;   // 创建一个元素是结构的vector

基本维护操作

1.访问

下标访问和at()两种方式,推荐第二种方法,它会进行边界检查。

vec_int[1], vec_int.at(1);    // 访问索引为1的元素,第2个元素

int size() const;                    // 返回向量中的元素个数

bool empty() const;              // 判断向量是否为空,true为空,false为不空

reference back( );                 // 返回向量的最后一个元素的引用,可以被修改

reference front( );                // 返回向量的第一个元素的引用,可以被修改

2.添加

void push_back(const T& Val); ;  // 在vector末尾处添加一个元素。

3.删除

void pop_back( );        // 删除向量末尾处的元素。

void clear();                // 清除向量中的所有元素

4.插入

void insert(iterator it, int count, T& value);  // 在迭代器的位置插入指定count数量的value值,count参数可选,默认为1

5.遍历

常用的使用迭代器遍历,也非常方便;

iterator begin();           // 返回向量的第一个元素的迭代器

iterator end( );            // 返回向量的最后一个元素的迭代器

遍历方法:

for (vector<int>::iterator vec_it = vec_int.begin(); vec_it != vec_int.end(); vec_it++)
{
cout << *vec_it << endl;
}

成员函数

assign
清除矢量并将指定的元素复制到该空矢量。
at 返回对矢量中指定位置的元素的引用。
back 返回对向量中最后一个元素的引用。
begin 对该向量中第一个元素返回随机访问迭代器。
capacity 返回在不分配更多的存储的情况下向量可以包含的元素数。
cbegin 返回指向向量中第一个元素的随机访问常量迭代器。
cend 返回一个随机访问常量迭代器,它指向刚超过矢量末尾的位置。
crbegin 返回一个指向反向矢量中第一个元素的常量迭代器。
crend 返回一个指向反向矢量末尾的常量迭代器。
clear 清除向量的元素。
data 返回指向向量中第一个元素的指针。
emplace 将就地构造的元素插入到指定位置的向量中。
emplace_back 将一个就地构造的元素添加到向量末尾。
empty 测试矢量容器是否为空。
end 返回指向矢量末尾的随机访问迭代器。
erase 从指定位置删除向量中的一个元素或一系列元素。
front 返回对向量中第一个元素的引用。
get_allocator 将对象返回到矢量使用的 allocator 类。
insert 将一个元素或多个元素插入到指定位置的向量中。
max_size 返回向量的最大长度。
pop_back 删除矢量末尾处的元素。
push_back 在矢量末尾处添加一个元素。
rbegin 返回指向反向向量中第一个元素的迭代器。
rend 返回一个指向反向矢量末尾的迭代器。
reserve 保留向量对象的最小存储长度。
resize 为矢量指定新的大小。
shrink_to_fit 放弃额外容量。
size 返回vector元素个数
swap 交换两个向量的元素。

C++线性序列容器<vector>简单总结的更多相关文章

  1. STL之序列容器vector

    首先来看看vector的模板声明: template <class T, class Alloc = allocator<T>> class vector { //… }; v ...

  2. STL - 容器 - vector简单应用

    VectorTest.cpp #include <vector> #include <iostream> #include <string> #include &l ...

  3. C++中防止STL中迭代器失效——map/set等关联容器——vector/list/deque等序列容器—如何防止迭代器失效—即erase()的使用

    序列性容器::(vector和list和deque)   erase迭代器不仅使所有指向被删元素的迭代器失效,而且使被   删元素之后的所有迭代器失效,所以不能使用erase(iter++)的方 式, ...

  4. 02--STL序列容器(Vector)

    一:vector容器简介 图片和顺序栈相似,但是vector数组是动态数组,支持随机存取--->但是在尾部添加或者溢出元素非常快速,中间插入删除费时 vector是将元素置于一个动态数组中加以管 ...

  5. STL常用序列容器

    这里简要的记述一下STL常用容器的实现原理,要点等内容. vector vector是比较常用的stl容器,用法与数组是非类似,其内部实现是连续空间分配,与数组的不同之处在于可弹性增加空间,而arra ...

  6. C++关联容器<map>简单总结

    C++关联容器<map>简单总结 map提供大小可变的关联容器,基于关联键值高效检索元素值.当你处理键值对的数据是,都可以考虑使用map关联容器. 特点: 大小可变的关联容器,基于关联键值 ...

  7. 基于FPGA的UART协议实现(通过线性序列机)

    //////////////////2018/10/15 更新源代码: 实现uart这东西其实早就写了,不过不太完善,对于一个完美主义者来说,必须解决掉它. 1.什么是UART?        通用异 ...

  8. string基本字符序列容器(竞赛时常用的使用方法总结)

    C语言只提供了一个char类型用来处理字符,而对于字符串,只能通过字符串数组来处理,而C++STL提供了string基本字符序列容器来处理字符串,可以将其理解为字符串类,它提供了添加,删除,替换.查找 ...

  9. SSIS之序列容器

    序列容器是一种十分简单,但使用非常广泛的容器,它可以对控制流的任务流组件进行结构化处理,把一些业务相关的任务组件,放到一个序列容器中,使整个包看起来更加整洁.美观,就如同我们家里的书柜.衣柜似的,把不 ...

随机推荐

  1. thinkphp 内置函数详解

    D() 加载Model类M() 加载Model类 A() 加载Action类L() 获取语言定义C() 获取配置值    用法就是   C("这里填写在配置文件里数组的下标")S( ...

  2. 随手写的Java向文本文件写字符串的类

    今天看了一篇讲Java IO流的文章,好长时间没用IO流了,回顾了一下Java编写IO程序的思路,之前文章中有介绍.对于写二进制文件我们习惯用 面向字节类的流.对于写字符我们使用面向字符类的流.但是我 ...

  3. C51指针类型和存储区的关系详解

    一.存储类型与存储区关系 data     --->    可寻址片内ram bdata   --->    可位寻址的片内ram idata    --->    可寻址片内ram ...

  4. 转:Redis作者谈Redis应用场景

    毫无疑问,Redis开创了一种新的数据存储思路,使用Redis,我们不用在面对功能单调的数据库时,把精力放在如何把大象放进冰箱这样的问题上,而是利用Redis灵活多变的数据结构和数据操作,为不同的大象 ...

  5. HDU 献给杭电五十周年校庆的礼物 1290 递推

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1290 题目大意: n刀最多可以把一块蛋糕切多少块 题目分析: 假如我们按照立体考虑的话,这题就非常不 ...

  6. 声明 && 温馨提示 by ljh2000

    听说有人很喜欢狙我......看我不把你们抓起来嘿嘿嘿! 为了采取措施,不让被狙成为生活常态(雾   ,我要闭关锁国辣,我要开始屯田辣! 以后写完题目先存一波草稿,等屯题屯到10-20道时再一起发出来 ...

  7. HDOJ(HDU) 1994 利息计算(简单题目)

    Problem Description 为自行解决学费,chx勤工俭学收入10000元以1年定期存入银行,年利率为3.7% .利率 按年计算,表示100元存1年的利息为3.7元.实际上有时提前有时推迟 ...

  8. CSAPP:Binary Bomb

    本篇文章参考了:http://www.cnblogs.com/remlostime/archive/2011/05/21/2052708.html大神的文章,有时候没思路了会来看一下,但是保证本文的每 ...

  9. JS 实现显示和隐藏div(以百度地图为例)

    主要参考的文章:https://my.oschina.net/xsh1208/blog/215811,https://zhidao.baidu.com/question/568774688.html ...

  10. html5中input新增type值的使用

    二狗在最近的项目以html5和webapp为主,并接触到了input新增type值的使用,下面就把这些玩意一一以实例列举出来 一:type = date:定义日期:年-月-日 input type=& ...