ホームページ  >  記事  >  バックエンド開発  >  C++ STL コンテナを反復するにはどうすればよいですか?

C++ STL コンテナを反復するにはどうすればよいですか?

WBOY
WBOYオリジナル
2024-06-05 18:29:01351ブラウズ

STL コンテナを反復するには、コンテナの begin() 関数と end() 関数を使用して反復子の範囲を取得できます。 ベクトル: for ループを使用して反復子の範囲を反復します。リンク リスト: next() メンバー関数を使用して、リンク リストの要素を移動します。マッピング: キーと値のペアのイテレータを取得し、for ループを使用して走査します。

如何遍历C++ STL容器?

C++ STL コンテナーを走査する方法

C++ 標準テンプレート ライブラリ (STL) コンテナーを走査することは、プログラマーの日常業務において不可欠なタスクです。 STL は、ベクトル、リンク リスト、マップなどの一連の事前定義されたデータ構造を提供し、それぞれが独自の走査メソッドを備えています。

STL ベクトルの走査

ベクトルを反復処理するには、begin() 関数と end() 関数を使用して反復子の範囲を取得できます。 : begin()end() 函数获得迭代器范围:

#include <vector>

int main() {
  std::vector<int> v = {1, 2, 3, 4, 5};

  // 使用基于范围的 for 循环
  for (int num : v) {
    std::cout << num << " ";
  }

  std::cout << std::endl;

  // 使用迭代器
  for (std::vector<int>::iterator it = v.begin(); it != v.end(); ++it) {
    std::cout << *it << " ";
  }

  std::cout << std::endl;

  return 0;
}

输出:

1 2 3 4 5 
1 2 3 4 5 

遍历 STL 链表

要遍历一个链表,我们可以使用链表的 front()back() 函数以及该链表的 next() 成员函数:

#include <list>

int main() {
  std::list<int> l = {1, 2, 3, 4, 5};

  // 使用基于范围的 for 循环
  for (int num : l) {
    std::cout << num << " ";
  }

  std::cout << std::endl;

  // 使用迭代器
  std::list<int>::iterator it = l.begin();
  while (it != l.end()) {
    std::cout << *it << " ";
    it = it->next();
  }

  std::cout << std::endl;

  return 0;
}

输出:

1 2 3 4 5 
1 2 3 4 5 

遍历 STL 映射

要遍历一个映射,我们可以使用映射的 begin()end()

#include <map>

int main() {
  std::map<std::string, int> m = {{"Apple", 1}, {"Banana", 2}, {"Cherry", 3}};

  // 使用基于范围的 for 循环
  for (auto const& [key, value] : m) {
    std::cout << key << ": " << value << std::endl;
  }

  std::cout << std::endl;

  // 使用迭代器
  for (std::map<std::string, int>::iterator it = m.begin(); it != m.end(); ++it) {
    std::cout << it->first << ": " << it->second << std::endl;
  }

  return 0;
}

STL リンク リストを走査する リンク リストを走査するには、リンク リストの front() 関数と back() 関数、および next() のメンバー関数:

Apple: 1
Banana: 2
Cherry: 3

Apple: 1
Banana: 2
Cherry: 3
🎜🎜 出力: 🎜🎜rrreee🎜 STL マッピングの走査 🎜🎜 マッピングを走査するには、マッピングの begin()を使用できます。 > および end() code> 関数はキーと値のペアのイテレータを取得します: 🎜rrreee🎜🎜出力: 🎜🎜rrreee

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。