indexOf в стиле ArrayList для std :: vector в C ++?

Я перехожу на C ++ из Java, и у меня обычная ситуация с дизайном, когда у меня есть элемент (не примитивный), который я хотел бы удалить из std :: vector.

на Java я бы написал что-то вроде: arrayList.remove (arrayList.indexOf (myClassInstance));

в C ++, с std :: vector, какой лучший / самый эффективный / самый чистый способ сделать это?

Лучшее, что я могу придумать, - это создать ссылку на экземпляр, который я ищу, а затем перебирать вектор, пока не найду эту ссылку. по сути, чтобы сравнивать адрес памяти каждого элемента в векторе со ссылкой, пока я не получу совпадение.

Я на правильном пути? или есть лучший способ сделать это? (возможно, используя другой контейнер std, я пока использовал только std :: vector.)

8
задан ericsoco 22 November 2010 в 00:28
поделиться