Jawapan: Gunakan iterator tetap untuk mengakses elemen kontena STL tanpa mengubah suai kandungan. Penerangan terperinci: Iterator malar diperoleh melalui kaedah cbegin() dan cend() dan digunakan untuk melintasi bekas tanpa mengubah suai elemen. Gunakan operator * untuk mengakses elemen, mengembalikan rujukan elemen. Gunakan operator ++ dan -- untuk bergerak ke hadapan dan ke belakang melalui iterator. Gunakan operator == dan != untuk membandingkan dan menentukan sama ada penghujung bekas telah dicapai.
Cara menggunakan iterator berterusan untuk mengakses bekas C++ STL
Dalam C++, bekas STL menyediakan berbilang jenis iterator, termasuk begin()
dan end() The regular iterator dikembalikan dengan kaedah
, dan iterator malar dikembalikan oleh kaedah cbegin()
dan cend()
. Iterator malar digunakan untuk mengulangi bekas tanpa mengubah suai kandungannya. begin()
和 end()
方法返回的常规迭代器,以及 cbegin()
和 cend()
方法返回的常量迭代器。常量迭代器用于遍历容器而不修改其内容。
语法:
常量迭代器与常规迭代器的语法相同。例如,在以下代码中,it
是一个指向 vector<int>
容器中元素的常量迭代器:
const vector<int> v = {1, 2, 3, 4, 5}; const vector<int>::const_iterator it = v.cbegin();
访问元素:
要访问常量迭代器指向的元素,可以使用 *
运算符。与常规迭代器一样,*it
返回指向元素的引用:
cout << *it << endl; // 输出:1
前进和后退:
与常规迭代器类似,常量迭代器还可以使用 ++
和 --
运算符进行前进和后退:
++it; // 前进到下一个元素 --it; // 后退到上一个元素
比较:
常量迭代器也可以用 ==
和 !=
运算符进行比较:
if (it == v.cend()) { cout << "迭代器指向容器的末尾" << endl; }
实战案例:
以下代码示例演示了如何使用常量迭代器遍历 vector
ia
ialah lelaran tetap yang menunjuk kepada elemen dalam bekas vector<int>
: 🎜#include <iostream> #include <vector> int main() { const vector<int> v = {1, 2, 3, 4, 5}; // 使用常量迭代器遍历容器 for (const vector<int>::const_iterator it = v.cbegin(); it != v.cend(); ++it) { cout << *it << " "; // 输出:1 2 3 4 5 } return 0; }
*
. Seperti iterator biasa, *it
mengembalikan rujukan kepada elemen: 🎜rrreee🎜🎜Ke hadapan dan ke belakang: 🎜🎜🎜Seperti iterator biasa, iterator tetap juga boleh menggunakan ++ dan <code>--
operator untuk ke hadapan dan ke belakang: 🎜rrreee🎜🎜Perbandingan: 🎜🎜🎜Penyalur tetap juga boleh digunakan dengan ==
dan !=
operator untuk perbandingan: 🎜rrreee🎜🎜Contoh praktikal: 🎜🎜🎜Contoh kod berikut menunjukkan cara menggunakan lelaran malar untuk melintasi bekas Atas ialah kandungan terperinci Bagaimana untuk mengakses bekas C++ STL menggunakan iterator berterusan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!