オブジェクトのベクトルがあり、属性が特定の値を持つ要素の範囲を返したいです。これは構造です:
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_;
};
ベクトルvec_
はすでにattr_
andでdest_->name()
(この順序で)ソートされています。attr_
ここで、に等しいすべての要素を返しますattr_val
。
実装するのに適切なstlアルゴリズムは何ですか(またはベクトルメンバー関数さえありますか?)getElements(unsigned int attr_val)
?