C ++ for_each()アルゴリズム

C ++ for_each()アルゴリズム

for_each()アルゴリズムは非常に柔軟性があり、それはあなたにアクセスする別の方法を可能にする、プロセス、以降C ++ 11から、すべての要素を変更し、ループをより便利に、より自然な動作を提供するために、したがって、for_each()は、おそらく安定浸食されますその重要性。

algostuff.hpp

#ifndefのALGOSTUFF_HPP
 の#define ALGOSTUFF_HPP

書式#include <配列> 
の#include <ベクトル> 
の#include <両端キュー> 
の#include <リスト>

書式#include <forward_list> 
書式#include < 設定 > 
書式#include <マップ> 
書式#include <unordered_set> 
書式#include <unordered_map>

書式#include <アルゴリズム> 
書式#include <反復子> 
書式#include <機能> 
の#include <数値> 
の#include <iostreamの> 
の#include < 文字列 >

// 添加元素を設定する 
テンプレート<typenameにT> 
インライン無効 INSERT_ELEMENTS(T&コル、int型まず、int型最終)
{
    以下のためのint型 ; I <=最後; ++ iの最初= I)
    {
        coll.insert(coll.end()、I);
    }
}

// 出力集合の要素 
テンプレート<型名T> 
インラインボイド PRINT_ELEMENTS(CONST T&コル、CONST STD :: 文字列&optcstr = "" 
{
    std :: coutの << optcstr。
    以下のための(:高専自動ELEM)
    {
        std :: coutの << elemは<< '   ' ;
    }
    std :: coutの << はstd ::てendl;
}

// 要素の出力地図 
テンプレート<typenameにT> 
インライン無効 PRINT_MAPPED_ELEMENTS(のconst T&コル、constの STD :: 文字列&optcstr = "" 
{
    std :: coutの << optcstr。
    以下のための(:高専自動ELEM)
    {
        std :: coutの << " [ " << elem.first << " " << elem.second << " ]   " ;
    }
    std :: coutの << はstd ::てendl;
}
#endifの // !ALGOSTUFF_HPP

 

main.cppに

#include algostuff.hpp 
使用して 名前空間はstdを、

int型のmain()
{
    ベクトル < int型 > VEC1。
    INSERT_ELEMENTS(VEC1、112 )。

    for_each(vec1.cbegin()、vec1.cend()、 
        [](のInt 要素)
        {
            coutの << elemは<< "   " ;
    });



    システム(一時停止)。
    リターン 0 ;
}

 

1 2 3 4 5 6 7 8 9 10 11 12

続行するには何かキーを押し...

 

参照コード:C ++標準ライブラリ(第2版)

 

参照コード:C ++標準ライブラリ(第2版)

参照コード:C ++標準ライブラリ(第2版)

参照コード:C ++標準ライブラリ(第2版)

おすすめ

転載: www.cnblogs.com/herd/p/12129665.html
おすすめ