• ベストアンサー

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; }

質問者が選んだベストアンサー

  • ベストアンサー
  • jacta
  • ベストアンサー率26% (845/3158)
回答No.2

すでに回答が出ているように、おそらくその本のどこかに定義があるはずです。 6行目の#include <>というのも非常に気になりますが... ところで、print<int>が標準出力への出力で、total<int>が累算のためのものであるなら、こんなのを使わなくても、 copy(v.begin(), v.end(), ostream_iterator<int>(cout, ",")); accumulate(v.begin(), v.end(), 0); といった感じで済むような気がします。

ejty110
質問者

お礼

回答ありがとうございます! そういう方法もあるんですね(^v^) 参考になりました。

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

多分、その本の別の部分に print<>() とか total<>() とか totalに関連したgettotal() が定義されている部分があるはずです。

ejty110
質問者

お礼

回答ありがとうございます。 調べてみます!

関連するQ&A