I have a class A with a member which is a vector of object pointers of another class B
class A
{
std::vector m_member_A
<
Vector works perfectly fine with std::find
auto result = std::find(m_member_A.begin(), m_member_A.end(), itemToFind);
if (result != m_member_A.end()) {
// found it!
}
Or if you need to dereference the pointer:
auto result = std::find_if(m_member_A.begin(), m_member_A.end(),
[] (B* item) {
if (item == nullptr) return false; // may want to do something else here
return *item == someValue;
});
if (result != m_member_A.end()) {
// found it!
}
Demo: http://ideone.com/jKCrG5