としてモデル化された何かのコレクションを考える:コンテナ発注要件(ブーストを理解するための努力で:: multi_index)
id
が固有で
name
がnull {非ユニーク/非で
struct Foo { int id; std::string name; };
を|空の}。標準のSTLコンテナは、約束の地に私を取得されていません
select id, name from Foo group by name order by id
:
は、どのように私は私のと同等の操作を行うことができますブースト:: multi_indexのようなデータ構造を使用してください。私は上の私のポイントを得るために上記のSQLバリアントを使用しました。私は実際にどのデータベースも扱っていません。
UPDATE:
だから、明らかに私が必要とするすべては、次のとおりです。
typedef boost::multi_index_container<
Foo,
indexed_by<
ordered_unique<identity<Foo>>,
ordered_unique<member<Foo, std::string, &Foo::name>>
>
> MIC;
誰かが私はこの権利を持って確認することができますか?それは動作するようです。私はまだそれをテストしていない。
[std :: map、値でソートする方法、次にキーでソートする方法](http://stackoverflow.com/questions/19842035/stdmap-how-to-sort-byvalue-then-by -key) – Treycos
@Treycosそれはまったく重複していません。私のSQLクエリをもう一度見てください。私はIDでソートするのではなく、名前でソートするように求めた。私はidでソートすると同時に、同じ*名前をすべてグループ化し、その中に_any_idを割り当てたいと言った。したがって、{1、 "Foo"} {2、 "Bar"} {3、 "Foo"}は最終的に{1、 "Foo" } {3、 "Foo"} – ForeverLearning
私よりモゾが多い人は「この質問にはすでに回答があるかもしれない」というタグを削除できますか?私の場合は不適切だと思う。 – ForeverLearning