アプリ版:「スタンプのみでお礼する」機能のリリースについて

ただいまSTLを勉強しているのですが、min_elementの三番目の引数の意味がわかりません。
iter min_element(iter first,iter last,pred pr);

以下のように使うのかなと自己解釈しましたが違うようです。
どうかご教授お願いします。


struct DATA{
int a;
int b;
};
main()
{
std::vector< DATA >data_vec;
std::vector< DATA >::iterator it;

for(int i=0;i<10;i++)//適当な数を10個プッシュバック
{
DATA data;
data.a=rand();
data.b=rand();
data_vec.push_back(data);
}

//it = min_element(data_vec.begin(),data_vec.end(),DATA::a);

}

A 回答 (1件)

「pr(x,y) がtrueであれば x < y である」としたとき、


範囲[first,last)での最小値を探します。

なのでたとえば:
bool pr(const DATA& x, const DATA& y) {
 return x.b < y.b;
}
...
it = min_element(data_vec.begin(),data_vec.end(),&pr);

とすれば、最も小さなbをもつ要素を探してくれます。
    • good
    • 1
この回答へのお礼

なるほど、関数をわたすことができるんですね。参考になりました有難うございました。

お礼日時:2006/12/27 22:20

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