当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。