あなたは何にトキメキますか?

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

A 回答 (2件)

すでに回答が出ているように、おそらくその本のどこかに定義があるはずです。


6行目の#include <>というのも非常に気になりますが...

ところで、print<int>が標準出力への出力で、total<int>が累算のためのものであるなら、こんなのを使わなくても、

copy(v.begin(), v.end(), ostream_iterator<int>(cout, ","));

accumulate(v.begin(), v.end(), 0);

といった感じで済むような気がします。
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/09/25 10:31

多分、その本の別の部分に


print<>()
とか
total<>()
とか
totalに関連したgettotal()
が定義されている部分があるはずです。
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/09/25 10:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報