【发布时间】:2014-12-04 13:12:32
【问题描述】:
我在尝试在 for_each 循环中传递函数时不断收到错误消息。我有一个向量,我使用 for_each 循环遍历该向量中的行,现在我需要一个函数来做某事
这就是我想要实现的示例:
void DataPartitioning::doSomething()
{
for_each (label.begin(), label.end(), addToTemporaryVector());
}
void DataPartitioning::addToTemporaryVector()
{
cout<<"sucess";
}
但我收到一条错误消息:错误:无效使用无效表达式,它们都在同一个类中。
【问题讨论】:
-
你需要传递一个函数,而不是调用一个函数的结果。但请注意,传递一个成员函数很棘手,因为它需要一个对象来操作。
-
你的意思是,我应该创建一个结构并在其中包含函数?
-
@George 你应该这样做:stackoverflow.com/questions/5050494/…
-
@George:或者使用 lambda,或
std::bind,或常规 for 循环。 -
如果你的编译器支持,check out the range-based for loop.
标签: c++