迭代器 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(); // 指向一个元素, // 在第一个之前,
random-access Iterator
[]
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(); // 指向一个元素, // 在第一个之前,
reverse_iterator
rbegin()
++
rend()
N
1000 ms 256 Mb Rules for program design and list of errors in automatic problem checking