iterators to range of elements in a vector whose attributes have specific value
- by user1801173
I have a vector of objects and I want to return the range of elements whose attribute have a specific value. This is the structure:
class A {
public:
std::vector<B*> vec_;
pair<vector<B*>::iterator, vector<B*>::iterator> getElements(unsigned int attr_val);
unsigned int name() { return name_; }
private:
unsigned int name_;
};
class B {
public:
unsigned int attr() { return attr_; }
A* source() { return source_; }
B* dest() { return dest_; }
private:
A* source_;
B* dest_;
unsigned int attr_;
};
The vector vec_; is already sorted by attr_ and dest_-name() (in that order). Now I want to return all elements, whose attr_ is equal to attr_val.
What is the appropriate stl algorithm (or is there even a vector member function?) to implement getElements(unsigned int attr_val) ?
Thanks for help.