クラスにプライベート スコープの Boost.BiMap があり、このマップの一部のパブリック ビューをエクスポートしたいと考えています。次のコードについて 2 つの質問があります。
class Object {
typedef bimap<
unordered_set_of<Point>,
unordered_multiset_of<Value>
> PointMap;
PointMap point_map;
public:
??? GetPoints(Value v) {
...
}
Point
最初の質問は、 に関連付けられた を取得する反復の方法Value
が正しいかどうかです。以下は、ポイントを反復処理するために使用しているコードです。私の質問は、it->first == value
条件を含める必要があることがわかったため、正しく反復しているかどうかであり、私が知らない可能性のあるより良いインターフェイスを考えると、これが必要かどうかはわかりませんでした。
PointMap::right_const_iterator it;
it = point_map.right.find(value);
while (it != point_map.right.end() && it->first == val) {
/* do stuff */
}
???
2 番目の質問は、bimap イテレータを公開せずに GetPoints (上記の戻り値の型) のパブリック ビューを提供する最善の方法は何かということpoint_map.right.end()
です。参照のリストやセットなどの効率的な構造であれば機能しますが、コレクションを作成する方法が少しわかりません。
ありがとう!