當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C++ for_each()用法及代碼示例


C++ 算法 for_each() 函數將函數 func 應用於從 'first' 到 'last' 範圍內的所有元素。

用法

template <class InputIterator, class Function>
Function for_each (InputIterator first, InputIterator last, Function func);

參數

first:它指定列表中的第一個元素。

last:它指定列表中的最後一個元素。

func:它是一個一元函數,它接受範圍內的參數。

返回值

該函數返回 'func'。

例子1

#include <iostream>
#include <algorithm>
#include <vector>
void newfunction (int k)
{
	std::cout << " " <<k;
}
struct newclass
{
	void operator () (int k)
	{
		std::cout <<" "<<k;
	} 
}
newobject;
int main()
{
	std::vector<int> newvector;
	newvector.push_back(50);
	newvector.push_back(100);
	newvector.push_back(150);
	std::cout << "newvector contains:\n";
	for_each (newvector.begin () , newvector.end (), newfunction);
	std::cout<< "\n newvector contains:\n";
	for_each (newvector.begin (), newvector.end(), newfunction);
	std::cout<<"\n";
	return 0;
}

輸出:

newvector contains:50 100 150
newvector contains:50 100 150

例子2

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
void printx1(int b)
{
    cout << b * 2 << " ";
}
struct Class1
{
    void operator() (int b)
    {
        cout << b * 3 << " ";
    }
} obj1;
int main()
{
    int ar[5] = { 6, 7, 8, 9, 10 };
      cout << "Using Arrays:" << endl;
    cout << "Multiple of 2 of elements are:";
    for_each(ar, ar + 5, printx1);
     cout << endl;
    cout << "Multiple of 3 of elements are:";
    for_each(ar, ar + 5, obj1);
    cout << endl;
    vector<int> ar1 = { 2,3,5,7,1 };
     cout << "Using Vectors:" << endl;
    cout << "Multiple of 2 of elements are:";
    for_each(ar1.begin(), ar1.end(), printx1);
    cout << endl;
    cout << "Multiple of 3 of elements are:";
    for_each(ar1.begin(), ar1.end(), obj1);
    cout << endl;
     }

輸出:

Using Arrays:                                                                                                                 
Multiple of 2 of elements are:12 14 16 18 20                                                                                 
Multiple of 3 of elements are:18 21 24 27 30                                                                                 
Using Vectors:                                                                                                                
Multiple of 2 of elements are:4 6 10 14 2                                                                                    
Multiple of 3 of elements are:6 9 15 21 3

複雜度

該函數以線性方式移動,從第一個元素開始向最後一個元素移動。檢查 'pred' 的列表值的每個元素。搜索一直持續到 ?pred? 不匹配為止。值遇到。

數據競爭

函數訪問指定範圍內的所有對象或其中一些對象。

異常

如果任何參數拋出異常,該函數將拋出異常。






相關用法


注:本文由純淨天空篩選整理自 C++ Algorithm Function for_each()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。