- ベストアンサー
CygwinでSTLの勉強をしていますが・・・
今C++のSTLの勉強をしています。 本に載っているサンプルプログラムを打って実行しようとしたら エラーがでてしまいました。 エラーの内容はprintとtotalが見つかりませんというエラーです。 コンパイラはcygwinを使ってます。 よろしくお願いします。 /*for_each()アルゴリズム*/ #include<iostream> #include<algorithm> #include<vector> #include<functional> #include<> using namespace std; int main() { int n[]={100,200,300,400,500,600}; int size=sizeof n/sizeof(int),i; vector<int> v; for(i=0;i<size;++i) v.push_back(n[i]); for_each(v.begin(),v.end(),print<int>()); cout<<endl; cout<<(for_each(v.begin(),v.end(),total<int>())).gettotal()<<endl; return 0; }
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
すでに回答が出ているように、おそらくその本のどこかに定義があるはずです。 6行目の#include <>というのも非常に気になりますが... ところで、print<int>が標準出力への出力で、total<int>が累算のためのものであるなら、こんなのを使わなくても、 copy(v.begin(), v.end(), ostream_iterator<int>(cout, ",")); accumulate(v.begin(), v.end(), 0); といった感じで済むような気がします。
その他の回答 (1)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
多分、その本の別の部分に print<>() とか total<>() とか totalに関連したgettotal() が定義されている部分があるはずです。
お礼
回答ありがとうございます。 調べてみます!
お礼
回答ありがとうございます! そういう方法もあるんですね(^v^) 参考になりました。