こんにちは、みんな!私はガブリエルです!ベクトルを使用してアルゴリズムの問題を解決する場合、多くの場合、出力をトラバースする必要があるため、次の 5 つの方法があります。
- 範囲ベースの for ループを使用して、ベクター コンテナーの要素に 1 つずつアクセスし、出力します。
std::vector<int> vec = { 1, 2, 3, 4, 5 }; for (auto element : vec) { std::cout << element << " "; }
- イテレータを使用してベクトル コンテナ全体を走査し、各要素の値を出力します。
std::vector<int> vec = { 1, 2, 3, 4, 5 }; for (auto it = vec.begin(); it != vec.end(); ++it) { std::cout << *it << " "; }
- 標準ライブラリ アルゴリズムを使用して
std::for_each()
、ベクトル コンテナ全体を走査し、各要素の値を出力します。std::vector<int> vec = { 1, 2, 3, 4, 5 }; std::for_each(vec.begin(), vec.end(), [](int element){ std::cout << element << " "; });
- C++11 で導入された for ループの最初のステートメントを使用してカウンター変数を宣言し、次に
at()
ベクター コンテナーの関数とカウンター変数を使用して各要素の値を出力します。std::vector<int> vec = { 1, 2, 3, 4, 5 }; for (size_t i = 0; auto element = vec.at(i); ++i) { std::cout << element << " "; }
- 標準ライブラリ アルゴリズムを使用して、
std::copy()
ベクトル コンテナ内のすべての要素を出力ストリームにコピーします。std::vector<int> vec = { 1, 2, 3, 4, 5 }; std::copy(vec.begin(), vec.end(), std::ostream_iterator<int>(std::cout, " "));
注: 上記の例はすべて、ベクトル コンテナーに整数型が含まれていることを前提としています。他のタイプの要素がコンテナーに格納されている場合は、それに応じてコードを変更する必要があります。
私の文章悪くないと思ったらブックマークしてゆっくり読んでください