2

boost::multi_index を使用して、次のようにデータを取得します。

sample_set::index<my_indx>::type::iterator s, end;
boost::tie(s,end) = samples.get<my_indx>().equal_range(
    boost::make_tuple( "Dress", "Red" ));

このコードは、すべての赤いドレスを取得します。1 回のクエリで赤と黄色のドレスを取得する方法はありますか? SQL のように:

"Select * from clothes where type = 'Dress' and color in ('Red', 'Yellow')"
4

1 に答える 1

3

Boost.MultiIndex ルックアップ メンバー関数は常に範囲(または 1 要素の範囲と考えることができる反復子) を返しますが、説明したようなクエリの結果は範囲ではありません。 -- その要素は隣接している必要はありません。したがって、("Dress","Red") と ("Dress","Yellow") の 2 つのクエリを実行し、2 つの結果範囲を順番にトラバースする必要があります。

于 2013-06-17T18:06:32.337 に答える