> ループさせるとどんどん重くなるんじゃないかという心配をしているだけです。
std::find()を使えば、見た目は一気に出来ているように見えますが、
内部でループしていますので同じ事です。
複数の項目を全て調べる処理はループせずに記述することはできません。
> 複数の項目を全て調べる処理はループせずに記述することはできません。
いや、モーモーさんの意図としては
全件検索せずとも見つける手段はないのか? ってことじゃないかしら?
座標位置でソートしておけば検索対象の'絞込み'ができるでしょう。
そういうことでしたか・・・
納得です。ありがとうございます。
とりあえず、やってみます。
すみません。。。
std::find()の引数ってなんですか?
MSDNで検索したんですけど、出てこないです(T_T)
それと、CItemクラスのHitTest関数は結局のところ、なんて書けばいいんでしょうか?
やっぱり、理解力が無さ過ぎて先に進めなかったです・・・
ごめんなさい。
> std::find()の引数ってなんですか?
> MSDNで検索したんですけど、出てこないです(T_T)
ごめんなさい'ちょんぼ'です。 findじゃなくfind_ifが正解。
# find_if なら MSDNの検索にヒットすると思う。
> それと、CItemクラスのHitTest関数は結局のところ、なんて書けばいいんでしょうか?
bool CItem::HitTest(CPoint pt) const {
ptがm_rectの領域内にあればtrueを返す
}
...ってゆーか、std::findがわかんなかったら
いつも使い慣れたfor-loopでぶん回ればいいんじゃないですか?
for ( i = 0; i < N; ++i ) {
if ( ptがi番目のCItem上にある ) {
見つかった!
break;
}
}
!
そうですね、結局のところループしてるんだったら、for文でも同じことですもんね。
一気にできるかと思って質問したんですけど、、、
わかりました。
ありがとうございました。
レスをくださった皆様、本当にありがとうございます。
どうにかPickup処理は完成しました。
また、行き詰まると質問しにきますので、その時はよろしくお願いしますm(__)m