C++ for_each()算法解析

for_each()算法比较简单,它的作用是遍历容器并对每一个元素执行函数,可以先看下算法的定义:

		// TEMPLATE FUNCTION for_each
template 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 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;
	});

在这里插入图片描述

你可能感兴趣的:(知识点练习)