for_each_nC++17

[機能]

  範囲の先頭 n 個の要素に指定された関数を適用します.関数 f は,
  void f(type n)
の形であり,type はコンテナの要素と一致している必要があります.

[形式]
#include <algorithm>

template <class InputIterator, class Size, class Function>
    Function for_each_n(InputIterator first, Size n, Function f);		

[使用例]

  1. for_each,for_each_n の使用方法です.以下に示すプログラム例において,いくつかのコメント部分は,その上または下に記述された方法とほぼ同等なものであることを示しています(複数行の対応関係である場合もある).
    #include <stdio.h>
    #include <vector>
    #include <algorithm>
    
    using namespace std;
    
    void print(int n)
    {
    	printf("  %d", n);
    }
    
    int main()
    {
    	vector<int> v = {0, 1, 2, 3, 4};
    	printf("vector v の各要素 :");
    	for_each(v.begin(), v.end(), print);   // 関数
    	printf("\n");
    	printf("vector v の最初の 3 個の要素 :");
    	for_each_n(v.begin(), 3, print);
    	printf("\n");
    //	printf("vector v の最初の 3 個の要素 :");
    //	for_each_n(v.begin(), 3, [](int x){ printf("  %d", x); });   // ラムダ式
    //	printf("\n");
    
    	return 0;
    }
    			
    (出力)
    vector v の各要素 :  0  1  2  3  4
    vector v の最初の 3 個の要素 :  0  1  2
    vector v の最初の 3 個の要素 :  0  1  2			
[参照]

for_each

菅沼ホーム 本文目次 演習問題解答例 付録目次 索引