multi_index_container - インデックスの型

前回 multi_index_container は
multi_index_container<
  要素の型,
  indexed_by<
    インデックス0の指定,
    ...,
    インデックスNの指定
  >
>
のようなテンプレート引数をもつと書いたが、インデックス部分の指定を詳しく見ていく。
multi_index_container で現在実装されているインデックスのタイプは、
  • sequenced - std::listのようにシーケンシャルなインデックス(キーは不要)
  • ordered_unique - std::setのようにキーの重複を許さないインデックス。検索時間はO(logN)
  • ordered_non_unique - std::multisetのようにキーの重複を許すインデックス。検索時間はO(logN)
である。できれば ハッシュによるインデックスなんかもあると嬉しいんだけど、これは将来予定されているらしい。
というわけで、それぞれの場合について指定方法をみていく。

sequenced
キーが必要ないので、基本的にはテンプレート引数は要らない。sequenced<> でOK。例えば、
typedef multi_index_container<
  std::string,
  indexed_by<
    sequenced<>,
    ordered_non_unique<identity<std::string> >
  >
> text_container;
として、text_container::get<0>() を呼び出すと、 std::list とよく似たインターフェースをもったオブジェクトを返してくれるので、それを使ってコンテナを操作できる。
なお、get<0>() とインデックスを番号で指定するのはソースが読みにくいってことで、タグ名で指定することもできる。その場合、sequencedの引数に以下のようにタグを指定する。
struct seq{}; // タグ名として振舞うクラス

typedef multi_index_container<
  std::string,
  indexed_by<
    sequenced<tag<seq> >,
    ordered_non_unique<identity<std::string> >
  >
> text_container;
このようにすれば、 text_container::get<seq>() というように番号でなく、タグ名でアクセス可能。

orderd_unique / ordered_non_unique
これらのテンプレート引数は共通になっていて、ordered_unique<キー, キー比較に用いる述語>となっている。比較に用いる述語はstd::setと同様に、デフォルトで std::less<キーの値>が定義されている。また、sequencedのように第1引数にタグを指定するタイプも用意されており、ordered_unique<tag<タグ>, キー, キー比較に用いる述語>となる。

各キーはコンテナで管理するオブジェクトからなんらかの方法で抽出する必要がある。例えば、オブジェクトのあるメンバ変数の値をキーとすることもできるし、std::setのようにオブジェクトの値そのものをキーとすることもできる。
キーを抽出するためのキーエクストラクタは、以下の4種類が用意されている。
  • identity - オブジェクトそのものをキーとする
  • member - オブジェクトのメンバ変数をキーとする
  • const_mem_fun - オブジェクトのconstメンバ関数の返り値をキーとする
  • mem_fun - const_mem_fun の非const版
例えば、以下のようなソースコードがあったとき
struct A {
  int id;
  ...
  std::string GetLabel() const { ... }
  bool operator<(const A& a) const { ... }
};

multi_index_container<
  A,
  indexed_by<
    ordered_unique<identity<A> >,              
    ordered_unique<member<A, int, &A::id> >,   
    ordered_non_unique<const_mem_fun<A, std::string, &A::GetLabel> >
  >
>
第0インデックスは Aそのものがキーとなるので、Aのoperator<() によってソートされたインデックスとなる。
第1インデックスは A::id がキーとなり、std::less<int> によってソートされたインデックスとなる。
第2インデックスは A::GetLabel() の返す std::string がキーとなり、std::less<std::string> によってソートされたインデックスとなる。

ちょっと長くなってしまったので、いったん区切る。

<< multi_index_container - 基本 Site Top multi_index_container - キーエクストラクタ >>

Comments

ヴェルサーチ スーパーコピー バッグ
2015/01/24 08:19 PM
グッチ スーパーコピー 時計
ヴェルサーチ スーパーコピー バッグ http://www.birminghamcitydogshow.co.uk/year/Social_versace.html
ヴィヴィアンウエストウッド ピアス
2016/08/22 06:32 AM
新作 Vivienne Westwood ヴィヴィアンウエストウッド ピアス ブランド:Vivienne Westwood ヴィヴィアン ウエストウッド カテゴリー:ヴィヴィアン ピアス イヤリング 価格:11000
mgbpgnt
2016/08/22 06:45 AM
Pasture | multi_index_container - インデックスの型
<a href="http://www.g5d30z8sv5bv57re1939c0in6b88k8oxs.org/">amgbpgnt</a>
mgbpgnt http://www.g5d30z8sv5bv57re1939c0in6b88k8oxs.org/
[url=http://www.g5d30z8sv5bv57re1939c0in6b88k8oxs.org/]umgbpgnt[/url]
シティサイクル 24インチ
2016/08/22 08:44 AM
本最大級の自転車通販サイト。シティサイクル,シティサイクル 通販,シティサイクル 24インチ,シティサイクル 26インチ,シティサイクル 27インチ,シティサイクル おしゃれ,人気,安い,高級,シティサイクル自転車!あなたの欲しい自転車がきっと見つかる!安心のアフター修理保証付き。組立後即日発送だから、届いた日からすぐ乗れる!
バーバリー マフラー
2016/08/22 11:32 AM
「burberry-muffler.net」バーバリー マフラー カシミア専門店。 新作 BURBERRY マフラー バーバリー マフラー カシミヤ ベージュ ブランド:BURBERRY バーバリー カテゴリー:バーバリー マフラー 価格:11900
ティソ腕時計 メンズ
2016/08/22 12:56 PM
ティソ(TISSOT)時計の海外通販サイト!2016 ティソ タッチコレクション tissot touch collection 腕時計 メンズ TISSOT T-RACE TOUCH Steel T081.420.17.017.00 価格:40500
アディダス キャップ
2016/08/22 01:35 PM
2016 adidas Originals THRASHER SNAPBACK CAP BLACK×RED アディダス オリジナルス スラッシャー スナップバック キャップ ブラック×レッド SB HA カテゴリー:アディダス キャップ 価格:4935
バーバリー Tシャツ
2016/08/22 02:40 PM
人気 バーバリー Tシャツ メンズ BURBERRY ポロシャツ 半袖 白 ブランド:バーバリー Tシャツ カテゴリー:バーバリー Tシャツ メンズ 価格:10500
ナイキ リュック キッズ
2016/08/22 03:45 PM
NIKE ナイキ リュック 人気 バックパック 通学 おしゃれ 赤 ブルー カテゴリー:ナイキ リュック 価格:6500
バンズ スニーカー
2016/08/22 08:13 PM
「shoesworldjapan.com」VANS(バンズ,ヴァンズ)の公式通販サイトです。 VANS バンズ スニーカー ローカット レディース 白 ブルー ブランド:VANS(バンズ,ヴァンズ) カテゴリー:VANS スニーカー ローカット 価格:9100
ヴィヴィアン バッグ
2016/08/22 08:17 PM
「www.vivienne-bag.com」ヴィヴィアンウエストウッド 専門店 Vivienne westwood ヴィヴィアン ウエストウッド ヴィヴィアン手提げ袋付き ハンドバッグ 黒 ブランド:Vivienne Westwood ヴィヴィアン ウエストウッド カテゴリー:ヴィヴィアン ハンドバッグ 価格:21920
ケイトスペード ハンドバッグ
2016/08/22 08:30 PM
ケイトスペード ハンドバッグ|ケイト?スペード ニューヨークの通販のオンラインショップでは、ケイトスペード バッグ,ケイトスペード 財布,ケイトスペード iphoneケース,ケイトスペード リュック,ケイトスペード 店舗など豊富な商品をラインナップ。【期間限定】ネット注文なら10,000円( 税別)以上購入で全国どこでも ◇送料無料! カテゴリー:ケイトスペード ハンドバッグ
ナイキ リュック アウトレット
2016/08/22 08:32 PM
ナイキ リュック|リュック?バックパックの通販サイト。人気のアディダス リュック,ナイキ リュック,バンズ リュック,ノースフェイス リュック,フェールラーベン リュックのページです。100%品質保証できます。2016人気高質な製品を驚きの低価格で提供して、送料無料でお届けします。毎日新作アイテム入荷中! カテゴリー:ナイキ リュック 価格:7100
フランクリンマーシャル パーカーセット 新作
2016/08/22 08:51 PM
FRANKLIN&MARSHALL|フランクリンマーシャルの通販サイトです。FRANKLIN&MARSHALL(フランクリンマーシャル)のフランクリンマーシャル Tシャツ、パーカー、ポロシャツを豊富に取り揃えています。 カテゴリー:フランクリンマーシャル パーカーセット メンズ
North Face リュック
2016/08/22 09:17 PM
新作 THE NORTH FACE ザノースフェイス Heckler リュック ブランド: カテゴリー:ノースフェイス リュック 価格:9500
エルメスベルトコピー
2017/12/12 05:27 PM
スーパーコピーブランド専門店おすすめ!
信用第一、良い品質、低価格は
当社の商品は絶対の自信が御座います。
ブランドコピーベルト
ブランドコピー財布
ブランドコピーサングラス偽物
◆ 当社今日 マフラー面な更新!
●在庫情報随時更新!(*^-^*)
S/AAA品質 シリアル付きも有り付属品完備!
全物品運賃無料(日本全国)
日本最高級激安高品質
2018/11/20 10:34 PM
とても素敵なネックレスで嬉しく思います。また、このショップで素敵なお品を探してみます。そして、対応も大変良かったです。
★TIFFANY ティファニー★ダブルハート ペンダント/ネックレス★スターリングシルバー925★
とありましたが、とてもよい商品をお買い得価格で購入できました。とっても素敵です。メールなどの対応もとても良かったです。
日本最高級激安高品質 https://www.tentenok.com/product-3005.html
スーパーコピーN級品バッグ財布時
2019/02/23 01:38 AM
カードで使える日本語完全対応の安心なブランドコピーショップ

ルイヴィトン、シャネル、グッチ、エルメス、プラダ等のコピー商品を販売致しております
ロレックス、ガガミラノ、パネライ、フランクミューラーなどのハイブランド腕時計のコピー品も取り扱っております。
2019年新作も随時入荷致しております。

当店の製品は、業界でスーパーコピーと呼ばれるレベルの商品を最低ラインに、自社工場にて手作業の製造を行っております。
日本人ブランド鑑定士をアドバイザーに品質管理を行っておりますので、一般消費者はもちろんのこと、
質店や鑑定士にも真贋鑑定が困難である、最高峰の製品をご提供致しております。商品の発送は日本郵便EMSにて格安の料金で承っており、
EMS日本郵便のサイトにて随時発送状況を確認頂けます。他業者では行っていないクレジットカード決済、コンビニ決済もご利用可能です。
安心、安全にお買い物をお楽しみ頂けます。

ご希望の商品が掲載されていない場合にも、
お問い合わせ頂けましたら商品を確保できる場合がございますので
スーパーコピー 時計 激安 6畳
2019/02/25 12:50 AM
2019年新作高品質の腕時計
ファッション業界に比類のない高品質だけでなく、唯一無二のデザインがあり
秀逸な素材と抜群な作工は完璧に融合します。しかも、色々な商品をお客様に提供しています。
この中で貴方の好きな商品を選ぶことができます。
お客様の需求に満足する為に、最高なブランドコピー 代引き商品とサービスに提供されます。
お客様の喜びさせることを保証します。
お客様を歓迎して当店をご光臨賜ります。
私達は長年の実体商店の販売経験を持って、あなたのために品質最上のブランドコピー時計、ブランド
コピーバッグ、ブランドコピー財布。
製品はされています高品質と低価格で提供,100%品質保証.
★信用第一、良い品質、低価格は。
広大な客を歓迎して買います!
★送料無料(日本全国) ご注文を期待しています!
★ 税関の没収する商品は再度無料にして発送します
韓国コピー
2019/03/01 02:41 AM
スーパーコピーブランド通販 (*^-^*)
スーパーコピー時計 、超人気激安ブランド財布、ブランドバッグコピー
皆さん、こんにちは!いつも弊店をご支援頂きまして誠にありがとうございます。
当店はブランドバッグ、財布、腕時計コーピ品を販売しています。
ROLEX ロレックス、シャネル シャネル、BVLGARI ブルガリ
CARTIER カルティエ、オメガ オメガ、FRANCK MULLER
IWC、HEMERS、ロンジン時計、バセロンコンスタンチン時計
送料無料(日本全国)!
サポート体制も万全です。
スタイルが豊富で。
最新作も随時入荷いたしております。
ご安心購入くださいませ。
コピー財布
2019/05/12 03:03 AM
ブランドコピーブランド専門店
ぜひ一度のブランドコピーブランド品をお試しください。
驚きと満足を保証できます。
ご利用を心からお待ちしております。
ルイ.ヴィトンバッグコピー品
2019/05/30 06:13 AM
エルメス バッグ コピー
ブランドコピー 通販 ネットショップへようこそいらっしゃいませ。今日もよろしくお願いします。
エルメス バッグ コピー
日頃に秋めいてきましたね。
今日は皆様に秋でもおしゃれな装いが決められるファッションコーディネートをご紹介いたします。
初秋ではシャツが一番快適だと思われるなら、中秋では無論シャツにベストが一番おしゃれなコーデに決まっていますね。
今日はラルフローレン コピー品で英国風に溢れる紳士のような格好を装いましょう。
スーパーコピー エルメス バッグ 一覧
2019/05/30 01:55 PM
偽物ロンジン時計
主な経営ブランドコピー:バッグ,財布,腕時計,ファッション小物,ブランド商品
商品の数量は多い、品質はよい、価格は低い、現物写真!
経営方針: 品質を重視、納期も厳守、信用第一は当社の方針です。
┏┓┏━┓  ★★★絶対価値ありで〜す
┏┻┻┛□┃┏★★★★┓┏━━━━┓┏━━━━┓┏━━━━┓
┃超人気新作N品登場☆注文を期待歓迎光臨┃
┗◎━━◎┻┻◎━━◎┻┻◎━━◎┻┻◎━━◎┻┻◎━━◎┛
シャネル時計コピー
2019/06/18 10:15 PM
ロレックスブランドコピー
ブランドコピーブランド優良店、偽物時計n級品海外激安通販専門店!
ロレックス、ウブロをはじめとした、
様々なブランドコピー時計の販売・サイズ調整をご提供しております。
ブランドコピーブランドなら当店で!
スーパーコピー
2019/08/24 07:59 PM
スーパーは専売店をコピーします
日本の最高級のスーパーマーケットはブランド時計超特便宜通信販売専売店をコピーして、品質よくコピーを表して、2019最も新作、国際ブランドの腕時計はコピーして、業界は唯一ただ2全くありません.世界の1流の高い品質のブランドは時計をコピーして、当店のスーパーは時計専売店をコピーして、以下の世界の1流のブランドを販売して時計をコピーします:ロレックスはコピーして、ウブロはコピーして、オメガはコピーして、シャネルはコピーします...なぜかというと最高な品質のスーパーマーケットはN級の品物をコピーして新作を表して最も商品に新しく着いて、第1を使いを信じて、安心してください、全国の運賃が無料です!
新旧(の程度)の顧客がお願いするのを歓迎します
ルイヴィトン スーパーコピー キーケース f10
2019/08/30 03:01 AM
スーパーコピーロレックス時計大人気を海外通販専門店!
様々なロレックス時計スーパーコピーの販売サイズ調整をご提供しております。
ルイヴィトン スーパーコピー キーケース f10 https://www.buykopi78.com/product/ProductShow-6030.html
スーパーコピーブランド
2019/08/31 06:28 AM
中日貿易 人気

┏┓┏━┓ 顧客は至上 宜しくお願いします
┏┻┻┛□┃┏━━━━┓┏━━━━┓┏━━━━┓
┃当店は腕時計の特価の活動を出します!品質保証
┗◎━━◎┻┻◎━━◎┻┻◎━━◎┻┻◎━━◎┛
スーパーコピーブランド
*通販しますご注文を期待しています
*全物品運賃無料(日本全国)
激安ブランドコピー
*不良品物情況、無償で交換します.
*税関没収する商品は再度無料で発送します
スーパーコピー高品質
*2019年人気貴族店 真咲 当店の特大優惠活動:
*注文40000円以上 贈呈 N品腕時計
スーパーコピーブランド https://www.ginzaok.com/bag/prodetail_id_5595.html
スーパーコピー ルイヴィトン ベルト amazon
2019/09/04 08:04 AM
ルイヴィトン ブランドコピー
2019超人気 ルイヴィトン ブランドコピー代引き
ルイヴィトン 財布 コピー 代引き激安市場!
当店は信頼できるルイヴィトン コピー代引きの激安通販店です。
2019 高品質ルイヴィトン バッグ コピー、ルイヴィトン 財布 コピー 代引きなどの商品が低価格でお客様に提供します。
100%実物写真ですし、品質が完璧です。
ルイヴィトン コピー,ヴィトン コピー,
ルイヴィトン コピー代引き,
ルイヴィトン ブランドコピー,
ルイヴィトン 財布 コピー,
ブランドコピー代引き
株式会社 ヴィトン コピー 専門店
スーパーコピーブランド専門店
2019/09/04 10:12 AM
ブランド 激安、安心、安全大特価
【新品】バッグ、財布、靴、帽子、アパレル、ベルト、その他小物 シャネル グッチ エルメス ロレックス ROLEX VUITTON
シャネル グッチ エルメス ROLEX S級 シャネル S グッチ S級 エルメス S級 ROLEX
AAA級 VUITTON AAA級 シャネル AAA級 グッチ AAA級 エルメス AAA級品 N級品ルイ ヴィトンS級品
シャネルS級品 グッチS級品 エルメスS級品 ロレックスS級品 ルイ ヴィトンAAA級品 シャネルAAA級品 グッチAAA級品 エルメスAAA級品
■スタイルが多い、品質がよい、価格が低い!
■ 送料無料(日本全国) ご注文を期待しています!
■信用第一、良い品質、低価格は
■当社の商品は絶対の自信が御座います
激安、安心、安全にお届けします.品数豊富な商
商品数も大幅に増え、品質も大自信です
100%品質保証!満足保障!リピーター率100%!
ロレックス時計コピー
2019/09/04 04:21 PM
183.146.29.43:8888
ロレックス時計コピー http://www.cocoejp.com/ProductList1.aspx?TypeId=741724312753501
ブランドスーパーコピー
2019/09/09 10:26 AM
野球 激安 大ヒットSALE!
【専門店】即日発送!80%以上割引
販売出售,正規品保証!
【新色】最新アイテムを海外通販!
【新商品!】安い卸売,即日発送!
【楽天市場】激安販売中、全国送料無料!
人気新品入荷*正規品*
※正規品※激安販売
【大好評2019】
100%新品代引き対応!
【限定品】超激安販売中!
『激安人気』送料無料.
『最速最新2019年人気新作!!』
愛する品を選択する高級アイテムコンセント
2年保証、返品可能、全国送料無料!
顧客サービスと速い配送でお客様に手入れ。
ブランドスーパーコピー https://www.cocoejp.com/ProductList1.aspx?TypeId=741724312753501
スーパーコピー
2019/09/11 06:15 PM
スーパーコピーブランド時計激安通販専門店
2019年人気最高品質時計コピー、国際ブランド腕時計コピー最新入荷!
商品の数量は多い、品質はよい。
海外直営店直接買い付け!
製品はされています高品質と低価格で提供!歓迎新旧顧客お願いします!
★ 2019年注文割引開催中,全部の商品割引10%
★ 在庫情報随時更新!
★ 実物写真、付属品を完備する。
★ 100%を厳守する。
★ 送料は無料です(日本全国)!
★ お客さんたちも大好評です
★ 経営方針: 品質を重視、納期も厳守、信用第一!
税関の没収する商品は再度無料にして発送します
MarquisCok
2019/09/22 02:41 PM
弊社は各ランクのブランド商品満載し、ブランド通販店で一番信用のある店なので!。
品質はこちらが間違いなく保証します。
https://www.ginzaoff.com/wallet/menu-page-2-pid-189.html


■取扱ブランド ロレックス時計コピー、カルティエ時計コピー、IWC時計コピー、
ブライトリング時計コピー、パネライ時計コピー.
◆ スタイルが多い、品質がよい、価格が低い、実物写真!
◆ ご入金頂いてから最速4日、遅くとも7日程度でご指定場所へ発送出来る予定でございます
◆ 商品送料を無料にいたします
https://www.ginzaoff.com/bag/product-7703.html

◆信用第一、良い品質、低価格は 私達の勝ち残りの切り札です。
◆ 当社の商品は絶対の自信が御座います。
◇ N品質 シリアル付きも有り 付属品完備!
https://www.ginzaoff.com/watch/menu-page-5-pid-243.html

◆ 必ずご満足頂ける品質の商品のみ販売しております。
◇ 品質を最大限本物と同等とする為に相応の材質にて製作している為です。
◆ 絶対に満足して頂ける品のみ皆様にお届け致します。
興味あれば、是非一度サイトをご覧になって下さい。
今後ともよろしくご愛顧くださいますよう、お願い申し上げます
https://www.ginzaoff.com/wallet/product-23355.html

お取り引きを開始させていただきたく思います。
詳細に関してはどうぞお気軽にご連絡ください。
ブランド偽物
2019/10/10 02:52 PM
ブランドコピー - ブランドコピー
※お写真ではわかりにくい点が御座いまし
たらお気軽にお問い合わせくださいませ。
■実物写真、付属品を完備しております。
■迅速、確実にお客様の手元にお届け致します。
■低価格を提供すると共に、品質を絶対保証しております。
■商品の交換と返品ができます。
スーパーコピー時計
2019/10/12 10:37 AM
ブランドコピーならにお任せ!
弊店のロレックスブランドコピーは2年無料保証になります。
ご入金が確認できてから1週間でお届け致します。
ロレックスコピー時計などを購入したい方はこちらへ。
ロレックスブランドコピー時計通販、N級品、全て新品、高い品質、激安、送料無料。
スーパーコピー時計 https://www.kopioff.com/tokei/hublot/bigbang/a35f112b361de3e3.html