我有一個函數對象的std :: vector。每個對象都可以接受一個int,所以我可以說obj(4)並得到一個int結果。我如何使用for_each算法來處理矢量的每個元素?如何使用for_each作爲重載操作符函數()
0
A
回答
1
你將不得不創建一個仿函數「呼叫」的每個對象:
struct Caller {
int value;
void operator()(const YourFunctorHere& f) const {
f(value);
}
} caller;
std::for_each(functors.begin(), functors.end(), caller);
1
哪個版本的C++? C++ 0x Lambdas使這個簡短而甜美。
在C++ 03中,for循環將比for_each
簡單。
要在C++ 03中使用for_each
,您需要創建一個函數,將所有輸入參數存儲在成員變量中並將其傳遞給for_each。向量中的每個函數都將作爲參數傳遞給此訪問函數,然後需要使用存儲的參數調用它的operator()。
相關問題
- 1. 重載操作符或使函數(C++)
- 2. 這個函數如何成爲一個重載操作符?
- 3. 操作符函數的操作符重載時出現問題
- 4. 重載的函數調用操作符可以使用多少個操作數?
- 5. 成員函數vs操作符重載
- 6. 重載操作符和朋友函數
- 7. *操作符重載操作數順序
- 8. 重載==操作符爲空
- 9. 如何重載「函數調用」操作符?
- 10. 使用操作者overloader在操作重載函數
- 11. 使C++重載操作符成爲函數指針
- 12. 如何將類的重載操作符成員作爲函數指針傳遞?
- 13. 重載==操作符
- 14. <<操作符重載使用析構函數
- 15. 重載函數調用操作
- 16. 如何在重載的新操作符中使用new操作符?
- 17. 如何使用重載操作符合並兩個數組?
- 18. 爲什麼找不到重載的操作符函數?
- 19. 在matlab中爲一個類重載每個函數操作符
- 20. 使用操作符重載在C++
- 21. 重載const操作符時使用const_iterator []
- 22. 使用和在操作符重載
- 23. 使用模板重載操作符
- 24. C++操作符重載和使用
- 25. 如何在流操作符重載函數中使用cust或指針?
- 26. 如何使用另一個類的重載函數操作符(operator())?
- 27. 新的C++和重載操作符,不確定如何使用函數
- 28. 重載postfix操作符不起作用
- 29. 如何重載struct的空操作符?
- 30. 如何做操作符重載?
它也有繼承unary_function – 2010-06-21 11:44:12
你不必寫仿函數,一個簡單的函數工作爲好。 – DaClown 2010-06-21 11:45:32
您可能也會在某處使用 'bind2nd(mem_fun_ref(YourFHere :: memberfunction),4)'... – xtofl 2010-06-21 11:47:48