いいタイトル見つけてください
あなたが Mathematica を知っているなら、私はこれに関連した何かをしたい:
m = {{a, b, c}, {d, e}, {f, g, h}};
m[[All, 2]] (* returns: {b, e, g} *)
いくつかのオブジェクトがあり、それらが N 次元のグリッドに配置されているとしますx,y,z。さらにx,y,z、オブジェクトのプロパティもあり、every(x,y,z)とオブジェクトの間には 1 対 1 の関係があります。
ここで、コンテナを一方向に繰り返し処理し、他の 2 つのプロパティをイテレータ インターフェイスで固定したままにします。たとえば、次のようにします。
Container<MyObject> container;
...
container::iterator it1 = container.begin(undefined, 1, 2);
container::iterator it2 = container.end(undefined, 1, 2);
// now the range [it1, it2] contains all the objects with y=1 and z=2
// ordered by x
私は見てきましたが、私の例ではboost::multi_index_container修正できないようです。yz
車輪の再発明はしたくないのですが、良い解決策は何ですか?
- より現実的なシナリオ:
x,y,zジェネリック型 (通常はint、stringまたはenum) wより現実的なシナリオ: キー ( ) を簡単に追加したい- より難しいシナリオ:
MyObjectオブジェクトはソート可能ではありません (はい、x,y,zソートに使用できます)