0

std::vectorすべての要素が で表される「テーブル」がありboost::fusion::vectorます。std::vector値をコピーせずに、このテーブルの「列」の表現を として返す必要があります。これを行う最善の方法は何ですか?n が列番号である nviewsを構築しようとしてstd::vectorいますが、機能していないようです。私は正しい軌道に乗っていますか、それとも他の方法がありますか?

4

1 に答える 1

1

ここのドキュメントによると、'sのat<N>(s)メソッドはboost::fusion::vector含まれている要素への参照を返します。

また、Boostライブラリバージョン1.48を使用している場合は、C++11の移動セマンティクスをサポートしています。これが意味するのは、特定の列番号、たとえばi、のテーブルのサイズをループし、である列ベクトルを設定する関数を持つことができるということですstd::vector。次に、この列ベクトルを返すだけで、呼び出し元の関数はmovedを取得しstd::vectorます。どの時点でもコピーは作成されません。

移動セマンティクスの詳細については、標準ページ自体を参照してください。ここで簡単に説明しているBjarneStroustrupのビデオも見ることができます。37分にジャンプし、43分まで監視します。

于 2012-02-18T08:56:55.997 に答える