問題タブ [std-pair]

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 投票する
3 に答える
1835 参照

c++ - ソートされた std::list の std::pair を std::map に変換する方法

を持っていますがstd::list< std::pair<std::string,double> >、これは に従ってソートされていることがわかっていstd::string elementます。

要素にstd::find_if基づいて多くのことをしたいので、 withとがより適切であると考えています。std::stringstd::map<string,double,MyOwnBinaryPredicate>lower_boundupper_bound

事実は、効率的な方法でinsert要素を追加したいということです。std::mapしたがって、追加のイテレータを使用して高速化したいと考えていinsertます。

最も簡単な方法は、 を使用しconst_reverse_iteratorて を通過し、 のをstd::list使用することだと思います。begin()std::map

このようにしますか、それとも悪い考えですか?

ありがとう!

0 投票する
5 に答える
10445 参照

iphone - C++STLコンテナ「ペア」に相当「Objective-Cでは?

私はObjective-Cを初めて使用するので、あまり判断しないでください。私は疑問に思っていました:Objective-Cで使用できるC ++ STLペアコンテナに相当するものはありますか?

NSBoolに関連付けられたNSIntegerを含む配列を作成したいと思います。各エントリが単一のKey-Valueを持つNSDictionaryである配列を使用できることは知っていますが、それは少しやり過ぎだと思います。

何か案は?

ありがとう。

0 投票する
5 に答える
19944 参照

c++ - std::pair に対して 2 つのセルを持つ構造体?

重複の可能性:
2 つのフィールドを持つ構造体とペアを持つ構造体の使用の違いは何ですか?

親愛なるみんな、

ペアと構造体について少し質問があります。2 つのセルを持つ構造体の代わりに std::pair を使用する利点はありますか? 私はしばらくペアを使用してきましたが、主な問題は読みやすさです。たとえば、二重 (int "label"、double "value") を表現したい場合は、次のいずれかを使用できます。

または

ステートメントに「セマンティック」な意味がある場合、コードはより読みやすくなります (x.label が何であるかは常にわかりますが、x.first の場合はそうではありません)。

ただし、ペアを使用する利点はあると思います。それはよりパフォーマンスが高いですか、それとも何か他のものですか?

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

c++ - ハックなしで `std::pair` のフィールドを「構成」することは可能ですか?

C++ では、次のコードをコンパイルします。

エラーが発生します:

テンプレートパラメーターリストの型をcv修飾すると、原則として「互換性のない」結果が得られるため、なぜそれが起こるのかを多かれ少なかれ理解しています。この場合、そうでなくても、コンパイラはそれを知る方法がありません。

とにかく、この変換を実行する非ハックな方法はありますか? reinterpret_cast以前はタイプパニングの問題を抱えていたので、何にでも使用することに警戒しています。また、これはパフォーマンスが重要なコードであるため、一時的に使用することはできません。

編集:

これが私がやっていることです。と互換性のあるカスタム コンテナ インターフェイスを実装していますstd::unordered_map。そのため、 であるvalue_type必要がありますpair <const key_type, mapped_type>。いくつかの最適化のために、値を、なしで内部的に保存する必要があります。ただし、そうすると、値への参照を返す必要があり、これらの非定数ペアへの参照しかないため、コンテナーにイテレーターを ( なしで) 実装することはできません。pair <key_type, mapped_type>constreinterpret_cast

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

c++ - このメモリは適切に解放されますか?

ペア ポインターがあるので、std::pair< A*, B* >* ポインターペアと仮定します。メモリを割り当て、ペアを使用した後、delete pointerpair を呼び出します。

また、delete A と delete B を呼び出して、メモリを完全に解放しますか?

delete Aとdelete Bのみを呼び出し、delete pointerpairを呼び出さない場合、メモリリークですか?

0 投票する
5 に答える
1878 参照

c++ - C ++ペアのベクトルに文字列のコピーを保存する

として定義されているクラスにプライベート属性がありますvector<pair<char *, int> > data;。でこのベクトルにデータを追加しますdata.push_back(make_pair(p, r));。後でベクトルからデータを取得しようとすると、p 値の悪いデータが得られます。返されるデータは次のようになり��U3ます。これは、char配列へのポインタが格納されているためだと思います。実際のコピーをベクターに保存するにはどうすればよいですか。それが役立つ場合、char 配列は 255 文字 + 1 を超えて null で終了することはありません。

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

c++ - std::stack が戻り値を破壊する

問題を説明するために、コードを次のように縮小しました。

gcc -O1 フラグを使用すると、test() 関数からの戻り値が壊れます。出力例を次に示します。

このコードは、「-O1」を除くすべての gcc 最適化フラグで機能します。my_stack の宣言を削除しても機能します。これをコンパイラのバグとして分類しますか、それとも std::stack と std::pair 値を返すことについて何か不足していますか?

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

c++ - std::pair または std::tuple で移動セマンティクスを使用する

移動セマンティクスを利用したいが、可動クラスの 1 つが の一部である必要があるとしますstd::pairstd::pair目的は、右辺値として扱うことができ、一緒に転送できるを返す関数を作成することです。

std::pairしかし、移動セマンティクスを認識させるために、それ自体に内部的な変更が加えられない限り、これがどのように行われるのかわかりません。

次のコードを検討してください。

問題はstd::make_pair、コンストラクタ自体と同様に、std::pair2 つのオブジェクトを取り、それらの内部コピーを作成しようとすることです。これにより、コピー コンストラクターの呼び出しが試行されます。しかし、私の例では、新しいペアをに移動resし、コピーが作成されないようにしたいと考えています。std::pair内部で次のコンストラクターが定義されていない限り、これは不可能だと思います。

しかし、少なくとも私が使用しているコンパイラ(gcc 4.3.2)ではそうではありません。私のコンパイラが単に古くなっている可能性があり、実際には新しいバージョンにはこのムーブ対応コンストラクタがあります。しかし、現時点では移動のセマンティクスに関する私の理解はやや不安定なので、ここで何かを見落としているだけなのかどうかはわかりません。それで、実際に再実装せずに、私が達成しようとしていることは可能std::pairですか? または、コンパイラが古くなっていますか?

0 投票する
3 に答える
1658 参照

c++ - ペアを持つ std::make_heap

make_heap()ベクター内のペアで行うことは可能ですか?

私は使用しています:

オブジェクト関数を使用してペアを最初のメンバーで並べ替えますが、クラッシュします。

コードは次のとおりです。

【ここから撮影】

0 投票する
9 に答える
145164 参照

c++ - マップに挿入するための好ましい/慣用的な方法は何ですか?

に要素を挿入する 4 つの異なる方法を特定しましたstd::map

それらのどれが好ましい/慣用的な方法ですか? (そして、私が考えていない別の方法はありますか?)