問題タブ [stl-algorithm]
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.
c++ - マルチセットコンテナを使用したset_union?
一方または両方の入力コンテナが重複したオブジェクトを持つマルチセットである場合、アルゴリズムstd:set_unionの戻り値は何ですか?重複は失われますか?
たとえば、次のように仮定します。
出力はどうなりますか?
c++ - 指定された配列で合計が「N」になる、一致するすべての数字を見つける方法
ここでの私の目標は、特定の合計になるすべての可能な組み合わせを見つけることです。たとえば、配列が 2 59 3 43 5 9 8 62 10 4 で、合計が 12 の場合、可能な組み合わせは次のとおりです。
これが私が書いた最初のコードセットです。これでできる最善の改善を考えています。
c++ - クラスメンバー関数内での関数オブジェクトの宣言と定義
クラスメンバー関数内で関数オブジェクトを定義して、たとえば std::transform 関数で直接使用できるかどうか、またどのようにできるか疑問に思います。
例が少しばかげていることはわかっています。これは、私が直面している問題を示すためのものです。
ファイル「example.h」
ファイル「example.cpp」
「example.cpp」のように関数オブジェクトをメンバー関数内に直接実装しようとして以来、コードはコンパイルされません。私が得るエラーメッセージは次のとおりです。
したがって、std::transform で構造体「ファンクター」を使用すると問題が発生すると思います。誰かが私に何が問題なのか教えてもらえますか?
使用:
Ubuntu Linux での gcc-4.2 コンパイラ。
前もってありがとう、
ルネ。
c++ - set_intersection での「ベクトル反復子はインクリメントできません」実行時エラー
このコードで実行時エラー「vector iterator not incrementable」が発生するのはなぜですか?
c++ - ブーストラムダの質問
これが私のコード例です。Foo のセットを for_each して、Foo のメンバーの型のセット (この場合は int) を生成したいと考えています。何が間違っているのかよくわかりませんが、間違いなく何か間違ったことをしています。
あなたの助けのためのTIA!
編集:みんなありがとう!作業コードは以下のとおりです...
c++ - deleteMin 操作とキー操作による検索の両方に有効なデータ構造
100 セットの A オブジェクトがあり、各セットはクエリ ポイント Qi, に対応しています1 <= i <= 100
。
アルゴリズムの反復ごとに、1 つのクエリ ポイント Qi を選択し、対応するセットから最小距離値を持つオブジェクトを抽出します。次に、100 セットすべてからこの特定のオブジェクトを見つけ、その ID で検索し、それらのオブジェクトをすべて削除する必要があります。
オブジェクトのセットごとにヒープを使用すると、オブジェクトを抽出するのにコストがかかりませんMIN(distance)
。ただし、ヒープは距離値で編成されているため、id で検索しても他のヒープで同じオブジェクトを見つけることができません。さらに、ヒープの更新にはコストがかかります。
私が検討した別のオプションは、map<id, (distance, x, y)>
for each セットを使用することです。このように ID による検索 (find 操作) は安価です。ただし、最小値を持つ要素を抽出するには線形時間がかかります (マップ内のすべての要素を調べる必要があります)。
必要な両方の操作に効率的な、使用できるデータ構造はありますか?
- extract_min(距離)
- 検索 (ID)
前もって感謝します!
c++ - STL Algorithm for_each がファンクタのデストラクタを 2 回呼び出すのはなぜですか?
私は STL アルゴリズムを試していて、より具体的には for_each 関数を使っていました。文字列のベクトルを連結するための簡単な使用例を試しました。これはおそらく適切で効率的なコードではないことに注意してください。本当に文字列のベクトルを連結したい場合は、boost::algorithm::join 関数を見てください。
連結子クラスは、通常のファンクターとして実装されます。
concatenator.h:
concatenator.cpp:
このプログラムをコンパイルして実行すると、次の出力が得られます。
concat hello to
concat world to hello
concat !!! to hello world
concatenator destructor called
concatenator destructor called
result =
concatenator destructor called
ファンクタから正しい結果を抽出できない理由と、デストラクタが何度も呼び出される理由を誰かが説明できますか?
c++ - 独立した入力パラメーターを持つ関数を使用して、STL for_each アルゴリズムを使用することは可能ですか?
現在、次のような STL コンテナー内の各要素を呼び出す for ループを実行しています。
私のニーズに合っているように見えるので、for_each STLアルゴリズムを見ています。
コンテナーに適用される関数に 2 番目の入力パラメーターを使用する場合、これをリファクタリングして、メンバー変数やその他の抜け穴を使用せずに標準の STL アルゴリズムを使用できるかどうか疑問に思っていました。
c++ - 'equal'テンプレート関数はどのように実装されますか?(述語バージョン)
私は「AcceleratedC++」という本を読んでいますが、演習の1つでは、ヘッダーの「equal」関数をエミュレートする必要があります。これまで、次の3つのパラメーターを使用する単純なバージョンを実装しました。
そして4番目のパラメータを受け入れることができる2番目のバージョン...
私の質問は、これはそれを行うための理想的な方法ですか?または、これら2つの機能はマージ可能ですか?
c++ - カスタム条件を並べ替える
さて、私はアイテムのベクトルに並べ替えを使用しようとしたので、2つの補助アイテムのサイズは<=2dです。だからここに私の試みがあります:
私は何を間違っているのですか、それともそのような条件を使用してソートすることさえ不可能ですか?