C++教程
C++控制语句
C++函数
C++数组
C++指针
C++对象
C++继承
C++多态
C++抽象
C++常用
C++ STL教程
C++迭代器
C++程序

C++ for_each()

C++ 算法函数for_each()

C++ 算法for_each()函数将函数func应用于从"第一个"到"last"范围内的所有元素。

语法

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

参数

first: 它指定列表中的第一个元素。
last : 它指定列表中的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

复杂度

该函数以线性方式移动,从第一个元素开始到last元素。对于列表中的每个元素,都会检查" pred"的值。搜索一直进行到与" pred?"不匹配为止。

数据竞争

该函数可以访问指定范围内的所有对象或其中的某些对象。

异常

如果任何参数抛出一个异常,则该函数将引发异常。

昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4