C ++エキスパートへの簡単な質問:
私が取り組んでいるプロジェクトには、ベクター内のオブジェクトへのポインターを含むクラスがあります。
std::vector<object*> objects;
オブジェクトにオフセットを追加する構造体があります(Point2Dは明らかにx、y座標です)
struct DraggedObject{
object* obj;
Point2D offset;
DraggedObject():obj(NULL),offset(Point2D(0,0)){}
};
また、オブジェクトをドラッグすると、次のようなstd::mapに追加されます。
std::map <int, DraggedObject> dragged_objects;
だから私の問題はこれです:このオブジェクトを移動する必要があるループがありますが、ドラッグされたオブジェクトはスキップします。私の質問は、オブジェクトベクトルをループして、オブジェクトがdragged_objectマップ上にあるかどうかを確認する方法はありますか?
私はこのようなことをしています:
for(std::vector<object*>::iterator it = objects.begin(); it != objects.end(); it++){
if(//Object is not in dragged_objects){
(*it)->move_to( Point2D( //Some point);
}else{
(*it)->move_to (Point2D (//Point of dragged object);
}
しかし、私はこの比較を行う方法がわかりません...
初心者の質問でごめんなさい。