STL コンテナを反復するには、コンテナの begin() 関数と end() 関数を使用して反復子の範囲を取得できます。 ベクトル: for ループを使用して反復子の範囲を反復します。リンク リスト: next() メンバー関数を使用して、リンク リストの要素を移動します。マッピング: キーと値のペアのイテレータを取得し、for ループを使用して走査します。
C++ STL コンテナーを走査する方法
C++ 標準テンプレート ライブラリ (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
要遍历一个链表,我们可以使用链表的 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
要遍历一个映射,我们可以使用映射的 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()
関数、および < code>next()< リンクリスト /code> のメンバー関数:
Apple: 1 Banana: 2 Cherry: 3 Apple: 1 Banana: 2 Cherry: 3
begin()
を使用できます。 > および end() code> 関数はキーと値のペアのイテレータを取得します: 🎜rrreee🎜🎜出力: 🎜🎜rrreee
以上がC++ STL コンテナを反復するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。