問題タブ [boost-tuples]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
793 参照

c++ - デフォルトで構築不可能なコピー不可能なオブジェクトのタプルを初期化する方法は?

次のようなパラメーター化されたコンストラクターを持ついくつかのクラスが与えられます。

そのようなクラスのタプルを適切に初期化する方法は?

A または B のコピー コンストラクターを使用せず、可能であればムーブ コンストラクターも使用しない。可能であれば、C++03 ソリューションが推奨されます。

0 投票する
1 に答える
129 参照

c++ - boost::tuples に == が定義されていない

私はこのコードを持っています:

しかし、コンパイルしようとすると、次のエラーが表示されます。

noRefのエイリアスでboost::tupleあり、tuple_comparisonこのケースを管理する必要があるため、なぜこれが発生するのですか?

エラーが見つかりました。解決方法がわかりません:

操作に誤りがあったようですstd::tie。したがって、次のように書き換えます。

正常に動作します。key問題は、タプル全体の潜在的に高価なコピーであるのに対し、 usingtieは参照のタプル (はるかに小さい) であるため、このソリューションは非効率的であるということです。it->firstでは、どうすればタプルへの参照を取得できますか? 同じtieトリックを使用する必要がありますか?

0 投票する
1 に答える
474 参照

python - boost::python::tuple に要素を追加する

オブジェクトから 2 番目の要素を削除しようとしていboost::python::tupleます。2 番目の要素を削除したいタプルは、Python 関数呼び出しに渡される引数のリストです。

要素を削除するには、次のようにします。

boost::python::tuple問題は要素を追加しないことだと思いますが、最初と2番目のスライスを要素として新しいタプルを作成しました。

どうすればこれを解決できますか?

0 投票する
1 に答える
336 参照

stdmap - boost::tuple をキーとして使用したマップ検索

boost::tuple の形式のキーがマップでどのように検索されるかを理解したいと思いますCompare=std::less。たとえば、これは私が取り組んでいるコードのスニペットです。

マップに値を挿入するときに、s1isabcs2isとしxyzます。ルックアップ中に、キーの一致はどのように決定されますか?

と の文字列比較はs1、と でそれぞれ個別にs2行われますか? その場合、比較演算子は使用されていますか?abcxyzstd::string

ありがとう!

0 投票する
1 に答える
479 参照

c++ - ブーストタプルのベクトル内の要素の位置を見つける

要素を見つけるために、boost::tuples のベクトルを繰り返し処理しています。ただし、後で削除するために、ベクター内のこの要素の正確な位置も見つけたいと思います。これはコードですが、std::distance では正しい値が得られません。

たとえば、サイズが 5 のベクトルの場合、std::distance は 8 です!

なんで?私のコードのどこにバグがありますか?

0 投票する
2 に答える
2382 参照

c++ - std::get、std::tuple_size、std::tuple_element を使用して、タプルのコンポーネントを合計します

タプルのようなインターフェイスを持つカスタム クラスがあります。コードをできるだけ汎用的なものにしたいので、関数std::getstd::tuple_sizeに基づいてアルゴリズムを作成することをお勧めします。std::tuple_elementしたがって、これらの関数を特殊化してアルゴリズムを使用するだけで済みます。これらの関数の特殊化を必要とする概念を呼びましょうTuple

今、私は のコンポーネントを合計しようとしていますTuple。関数宣言は次のようにする必要があります。

多くのテンプレート プログラミングが関係していると思いますが、その方法がわかりません。

追加には、 global のオーバーロードを使用し+ operatorます。

私はc++1zを使用しています。