我是新來的函子主題,所以我希望這個問題將是建設性的。函子和字符串向量
我有數組的字符串()。我需要在函子的幫助下計算這些字符串長度的總和。
我的代碼:
class LengthFinder{
private:
size_t sum;
public:
LengthFinder():sum(0){}
void operator()(string elem)
{
sum += elem.size();
}
operator int()
{
return sum;
}
};
int main(int argc, char* argv[])
{
vector<string> array;
array.push_back("string");
array.push_back("string1");
array.push_back("string11");
string elem;
int sum = std::for_each(array.begin(), array.end(), LengthFinder(/*??*/));
return 0;
}
我應該通過什麼LengthFinder(),讓每個字符串,並把它的大小?
你試過運行你的代碼?您想在長度定位器中放什麼? – billz 2013-02-19 06:23:10
你不需要做任何事情。只有'LengthFinder()'創建一個臨時實例用於'for_each',並且'for_each'在該實例中調用'operator()'方法。 – 2013-02-19 06:24:26
但是,您可能希望將'operator()'的參數改爲一個常量引用,即'void operator()(const std :: string&elem)'。 – 2013-02-19 06:25:08