c++笔记 —— vector

论坛 期权论坛 期权     
初秋兰因   2019-7-14 18:11   3496   0

(他说必须插一张图)

标准库类型vector表示对象的集合,其中所有对象的类型都相同。集合中的每个对象都有一个与之对应的索引,索引用于访问对象。因为vector“容纳着”其他对象,所以他也常被称作容器(container)
要想使用vector,必须包含适当的头文件。在后续的例子中,都将假定做了如下声明:
  1. #include using std::vector;
复制代码
c++语言既有类模板,也有函数模板,其中vector是一个类模板。
模板本身不是类或函数,相反可以将模板看作为编译器生成类或函数编写的一份说明。编译器根据模板创建类或函数的过程称为实例化,当使用模板时,需要指出编译器应把类或函数实例化成何种类型。比如,我们希望vector内存放的对象是int型,需要这样声明:
  1. vector ly;    //ly存放int类型的对象
复制代码
[h1]定义和初始化 vector 对象[/h1]
  1. vector ly;        //是一个空vector,他潜在的元素是T类型的,执行默认初始化
复制代码
  1. [/code]
  2. [code]vector a(ly);    //a是包含ly中所有元素的副本
复制代码
  1. [/code]
  2. [code]vector a = ly;    //等价于a(ly)
复制代码
  1. [/code]
  2. [code]vector ly(n, val);            //ly包含n个重复的元素,每个元素的值都是val
复制代码
  1. [/code]
  2. [code]vector ly(n);                //ly包含了n个重复地执行了值初始化的对象
复制代码
  1. [/code]
  2. [code]vector ly{a, b, c...};        //ly包含了初始值个数的元素,每个元素被赋予相应的初始值
复制代码
  1. [/code]
  2. [code]vector ly = {a, b, c...};    //同ly{a, b, c...}
复制代码
[h2]列表初始值还是元素数量?[/h2]
  1. vector ly(10, 1);    //十个 1vector ly{10, 1};    //一个 10 一个 1vector ly(10);    //十个元素每个都是 0vector ly{10};    //一个元素 10
复制代码
[h1]向 vector 中添加元素[/h1]
  1. vector ly;        //空 vector 对象int n;while (cin >> n)    ly.push_back(n);    //把n添加到 ly 尾端
复制代码
[h1]其他 vector 操作[/h1]
  1. ly.empty();            //如果 ly 不含有任何元素,返回真;否则返回假
复制代码
  1. [/code]
  2. [code]ly.size();                //返回 ly 中元素的个数
复制代码
  1. [/code]
  2. [code]ly.push_back(n);        //向 ly 尾端添加一个值为 n 的元素
复制代码
  1. [/code]
  2. [code]ly[n]                    //返回 ly 中索引为 n 位置上元素的引用
复制代码
  1. [/code]
  2. [code]ly = v;                //用 v 中元素的拷贝替换 ly 中的元素
复制代码
  1. [/code]
  2. [code]ly = {a, b, c...};        //用列表中元素的拷贝替换 ly 中的元素
复制代码
  1. [/code]
  2. [code]ly == v;                //ly 和 v 相等当且仅当他们的元素数量相同且对应位置的元素值都相同
复制代码
  1. [/code]
  2. [code]ly != v;            //顾名思义,以字典序进行比较
复制代码
[h1]其他有趣的例子[/h1][h2]遍历 vector 中元素[/h2][code]vector ly{1, 2, 3, 4, 5, 6, 7, 8, 9};for (auto a : ly)        //注意,范围for循环中不能改变原来序列的大小    cout
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP