任何人都可以帮我编写接受STL容器和可调用函数的函数的定义。执行时,该函数将可调用对象应用于容器的每个元素?
答案 0 :(得分:1)
这里有一些非常简单的事情:模板接受容器和函数的函数,然后在每个元素上调用函数:
template<typename C, typename F>
void CallCallable(C&& c, F&& f)
{
for(auto&& element : c)
{
f(element);
}
}
你可以像这样使用它:
std::vector<int> myVec{1,2,3,4,5,6};
// add 1 to each element
CallCallable(myVec, [](int& i){++i;});
当然这很简单,我对你想要的东西做了一些假设,但它完成了工作。 (希望比我聪明的人可以给你更好的东西:-))