[Gabriel] C++ でベクター コンテナーの要素を出力 (トラバース) する 5 つの方法

こんにちは、みんな!私はガブリエルです!ベクトルを使用してアルゴリズムの問​​題を解決する場合、多くの場合、出力をトラバースする必要があるため、次の 5 つの方法があります。 

  1. 範囲ベースの for ループを使用して、ベクター コンテナーの要素に 1 つずつアクセスし、出力します。
    std::vector<int> vec = { 1, 2, 3, 4, 5 };
    
    for (auto element : vec) {
        std::cout << element << " ";
    }
    

     

  2. イテレータを使用してベクトル コンテナ全体を走査し、各要素の値を出力します。
    std::vector<int> vec = { 1, 2, 3, 4, 5 };
    
    for (auto it = vec.begin(); it != vec.end(); ++it) {
        std::cout << *it << " ";
    }
    

     

  3. 標準ライブラリ アルゴリズムを使用してstd::for_each()、ベクトル コンテナ全体を走査し、各要素の値を出力します。
    std::vector<int> vec = { 1, 2, 3, 4, 5 };
    
    std::for_each(vec.begin(), vec.end(), [](int element){
        std::cout << element << " ";
    });
    

     

  4. 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 << " ";
    }
    

     

  5. 標準ライブラリ アルゴリズムを使用して、std::copy()ベクトル コンテナ内のすべての要素を出力ストリームにコピーします。
    std::vector<int> vec = { 1, 2, 3, 4, 5 };
    
    std::copy(vec.begin(), vec.end(), std::ostream_iterator<int>(std::cout, " "));
    

    注: 上記の例はすべて、ベクトル コンテナーに整数型が含まれていることを前提としています。他のタイプの要素がコンテナーに格納されている場合は、それに応じてコードを変更する必要があります。

私の文章悪くないと思ったらブックマークしてゆっくり読んでください 

 

おすすめ

転載: blog.csdn.net/weixin_74802373/article/details/130043838