ホームページ > バックエンド開発 > C++ > 定数イテレータを使用して C++ STL コンテナにアクセスするにはどうすればよいですか?

定数イテレータを使用して C++ STL コンテナにアクセスするにはどうすればよいですか?

WBOY
リリース: 2024-06-03 15:15:57
オリジナル
967 人が閲覧しました

回答: コンテンツを変更せずに STL コンテナ要素にアクセスするには、定数イテレータを使用します。詳細な説明: 定数反復子は cbegin() および cend() メソッドを通じて取得され、要素を変更せずにコンテナーを走査するために使用されます。 * 演算子を使用して要素にアクセスし、要素参照を返します。 ++ 演算子と -- 演算子を使用して、反復子内を前後に移動します。 == 演算子と != 演算子を使用して比較し、コンテナの終わりに到達したかどうかを判断します。

如何使用常量迭代器访问C++ STL容器?

定数イテレータを使用して C++ STL コンテナにアクセスする方法

C++ では、STL コンテナは、begin()end() などの複数のイテレータ型を提供します。 メソッドによって返される定数反復子と、cbegin() メソッドおよび cend() メソッドによって返される定数反復子です。定数イテレータは、コンテナの内容を変更せずにコンテナを反復処理するために使用されます。 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

🎜構文: 🎜🎜🎜定数反復子の構文は、通常の反復子と同じです。たとえば、次のコードでは、itvector<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;
}
ログイン後にコピー
🎜🎜 要素にアクセスするには: 🎜🎜 🎜定数にアクセスするには イテレータが指す要素には、* 演算子を使用できます。通常のイテレータと同様に、*it は要素への参照を返します: 🎜rrreee🎜🎜前後方向: 🎜🎜🎜 通常のイテレータと同様、定数イテレータも ++ を使用できます。前方および後方の <code>-- 演算子: 🎜rrreee🎜🎜比較: 🎜🎜🎜定数反復子は、== および != とも使用できます。比較用の演算子: 🎜rrreee🎜🎜実際の例: 🎜🎜🎜次のコード例は、定数反復子を使用して vector コンテナーを走査する方法を示しています: 🎜rrreee

以上が定数イテレータを使用して C++ STL コンテナにアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート