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++ forward_list::unique()用法及代碼示例
- C++ forward_list::emplace_front()用法及代碼示例
- C++ forward_list::reverse()用法及代碼示例
- C++ forward_list::swap()用法及代碼示例
- C++ forward_list::front()、forward_list::empty()用法及代碼示例
- C++ forward_list::operator=用法及代碼示例
- C++ forward_list::clear()、forward_list::erase_after()用法及代碼示例
- C++ forward_list emplace_after()、emplace_front()用法及代碼示例
- C++ forward_list::splice_after()用法及代碼示例
- C++ forward_list resize()用法及代碼示例
- C++ forward_list merge()用法及代碼示例
- C++ forward_list::begin()、forward_list::end()用法及代碼示例
- C++ forward_list::remove()、forward_list::remove_if()用法及代碼示例
- C++ forward_list assign()用法及代碼示例
- C++ forward_list insert_after()用法及代碼示例
- C++ forward_list::push_front()、forward_list::pop_front()用法及代碼示例
- C++ forward_list::max_size()用法及代碼示例
- C++ forward_list::before_begin()用法及代碼示例
- C++ forward_list cbegin()用法及代碼示例
- C++ forward_list::cend()用法及代碼示例
注:本文由純淨天空篩選整理自 C++ Algorithm Function for_each()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。