常用网站建设技术有哪些,对电子商务网站建设的理解,海外网新闻,商务网站建设的第一步std::for_each 是 C STL 中的标准函数之一#xff0c;用于对指定的容器或序列中的元素执行指定的操作。该函数的头文件为 algorithm#xff0c;定义在 namespace std 中#xff0c;因此需要包含该头文件才能使用该函数。
std::for_each 函数是 C STL 中自 C98 就开…std::for_each 是 C STL 中的标准函数之一用于对指定的容器或序列中的元素执行指定的操作。该函数的头文件为 algorithm定义在 namespace std 中因此需要包含该头文件才能使用该函数。
std::for_each 函数是 C STL 中自 C98 就开始提供的函数因此在 C98/03、C11、C14 等版本中都可用。由于 std::for_each 很常用其定义已经稳定因此在 C17、C20 等新版本中依然继续保留并使用。
需要注意的是C14 和 C17 都对 std::for_each 进行过更改新增了一个返回值用于返回执行完毕后的第三个参数的值。因此在使用 for_each 函数时需要确保自己所用的 C 版本以保证代码的正确性。 for_each第三个参数是迭代器问题
问题
按照常理map的迭代器应该就是std::mapT1,T2::iterator,但是为什么下面的代码时错误的。
for_each(m_m.begin(),m_m.end(),[](std::mapint,int::iterator iter){std::coutiter-secondstd::endl;}); vector也一样
for_each(v.begin(),v.end(),[](std::vectorint::iterator iter){std::cout*iterstd::endl;}); 原因
for_each的第三个参数是一个函数指针而for_each内部实现是
1获取迭代器的值
2将这个值以值传递的方式传递给for_each的第三个参数。
//for_each()的实现如下
template typename Iterator, typename OperationOperation for_each (Iterator beg, Iterator end, Operation op){while(beg ! end){op(*beg);beg;}return op;}代码来源