C++ for_each()算法解析
for_each()算法比较简单,它的作用是遍历容器并对每一个元素执行函数,可以先看下算法的定义:// TEMPLATE FUNCTION for_eachtemplate<class _InIt,class _Fn1> inline_Fn1 for_each(_InIt _First, _InIt _Last, _Fn1 _Func){// perform fu...
·
for_each()算法比较简单,它的作用是遍历容器并对每一个元素执行函数,可以先看下算法的定义:
// TEMPLATE FUNCTION for_each
template<class _InIt,
class _Fn1> inline
_Fn1 for_each(_InIt _First, _InIt _Last, _Fn1 _Func)
{ // perform function for each element
_DEBUG_RANGE_PTR(_First, _Last, _Func);
_For_each(_Unchecked(_First), _Unchecked(_Last), _Func);
return (_STD move(_Func));
}
算法的参数为容器的头迭代器,尾迭代器,函数 ,它的实现方式为
template<class _InIt,
class _Fn1> inline
void _For_each(_InIt _First, _InIt _Last, _Fn1& _Func)
{ // perform function for each element
for (; _First != _Last; ++_First)
_Func(*_First);
}
方法为遍历容器,将当前迭代器所指的元素传入函数处理。
下面做个演示
for_each(tempOpH.begin(), tempOpH.end(), [](OpHistory* right) {
cout << setw(12) << left << (right->GetOpNumber())
<< setw(12) << ((right->GetOpTarge())->GetbooksCode())
<< setw(12) << ((right->GetOpTarge())->GetbooksName())
<< setw(12) << ((right->GetOpTarge())->Getinventory())
<< setw(12) << ((right->GetOpTarge())->GetType() ? "销售类" : "借阅类")
<< setw(12) << (bot)
<< setw(12) << (right->GetOpCount()) << endl;
});
更多推荐
已为社区贡献2条内容
所有评论(0)