C++ 中的向量(vector )
C++中的一种动态数组是 vector (vector) 。
矢量(vector ) —它是一个已经是动态数组模型的数据结构。
C++ 中的普通数组没有任何特殊的函数和方法来处理它们。 C++ 中的向量是包含更多用于处理元素的附加函数的数据结构。
创建一个向量
#include <向量>;
...
主函数()
{
// 包含 10 个元素的整数向量 v 的声明
向量<整数>五(10);
// 与零初始值相同(向量 v1)
向量<整数> v1(10, 0);
...
向量填充
方法一
我们为第 n 个元素分配内存,并通过从键盘读取它们来填充它们。
国际;
辛>>名词;
矢量 a(n);
for (int i = 0; i < n; i++)
辛>> a[i];
方法二
当元素个数未知时需要第二种方法。首先,创建一个空向量,然后使用 push_back() 方法,将一个新元素添加到向量的末尾。
国际;
辛>>名词;
矢量一个;
for (int i = 0; i < n; i++) {
积分;
辛>> b;
a.push_back(b);
}
向量大小
int b = a.size();
|
迭代器
迭代 容器 (数据结构)中的元素的一种方法是 迭代器( 迭代器 code>), 有多种类型。
Iterator - “laquo;表示”的数据结构;在某些容器元素上,并且(对于某些容器)可以导航到上一个/下一个元素。
vector使用了最强大的- random-access iterator(random-access Iterator )。 除了顺序移动之外,随机访问迭代器还可以访问向量的任意元素。
迭代器的好处
1) 在删除元素和使用索引([] )迭代元素时,我们需要一直跟踪剩余元素的数量,以免超出向量,而使用迭代器,您可以使用end()< /code>表示vector的结束。
2) 使用迭代器,您可以轻松地动态删除和插入向量中的元素。
迭代器声明
1) 声明一个整数向量的迭代器并将其指向向量中的 first 元素。
向量<整数>我的向量 = { 1, 2, 3, 4, 5 };
vector ::iterator it = myvector.begin();
2) 声明一个整数向量的迭代器,并将其指向向量中 last 之后的元素。
向量<整数>我的向量 = { 1, 2, 3, 4, 5 };
vector ::iterator it = myvector.end(); // 指向最后一个之后的元素,
vector ::iterator it1 = myvector.end() - 1 ; // 指向最后一个元素。
获取并显示一个值
获取并显示迭代器指向的元素。
输出 << *它;
移动迭代器位置
将迭代器位置向前移动 3 个位置。
<前>
提前(它,3);
从现有迭代器创建新迭代器
在现有迭代器的基础上创建一个新的迭代器,前进 3 个位置。
auto it1 = next(it, 3);
使用迭代器显示向量值
vector::iterator it;
对于 (it = myvector.begin(); it != myvector.end(); ++it) {
cout<<*它<<" ";
}
向量遍历
为了从最后一个元素到第一个元素遍历向量,使用了一个反向迭代器 reverse_iterator ,它通过以下方式获得:
1) rbegin() - 返回一个指向向量最后一个元素的反向迭代器,应用++ 操作导致过渡到前一个元素;
2) rend() - 返回一个指向vector前一个元素的反向迭代器,++操作的应用导致转换 到下一个。
vector::reverse_iterator it = myvector.rbegin(); // 指向最后一个元素
vector::reverse_iterator it = myvector.rend(); // 指向一个元素,
// 在第一个之前,
|