問題タブ [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 投票する
2 に答える
664 参照

php - PHP には C++ の std::pair がありますか?

キーが文字列のペアである連想配列をPHPで作成したいと思います。

最初は、文字列を途中で何らかの独自の仕切りで連結し、後でそれらを分離することを検討していましたが、これはペアを使用するためのハッキーな回避策のようです。

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

PHP では配列を配列のキーとして使用できないため、明らかにこのコードは機能しません。文字列を連結して後で解析せずに、このようなことを行う良い方法はありますか?

編集

これをやりたいのには理由があります。私は を持っておりarray(key=string1,value=array(key=string2,value=occurrences))、文字列のペアの上位 5 (出現数) を見つけようとしています。だから私は基本的にこれを 1 次元配列にフラット化し、それを並べ替えて上位 5 つを簡単に取得できるようにしようとしています。上記で説明した除算アルゴリズムで実行できますが、これは好ましくないため、代替手段を求めています。

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

c++ - std::pair の c++ オーバーロード operator[]

私は値のペアで多くの作業を行います: std::pair<int, int> my_pair. と の両方で同じ操作を実行する必要がある場合がありmy_pair.firstますmy_pair.second

j=0,1my_pair[j]をループして 実行できれば、私のコードははるかにスムーズになります。(メモリの割り当てに煩わされたくないので、配列の使用を避けています。他のものにも広く使用しています)。pair

したがって、 forを定義 したいと思います。operator[]std::pair<int, int>

そして、私はそれを機能させることができません(私はテンプレートなどにあまり得意ではありません)...

コンパイルに失敗します。他のバリエーションも同様に失敗します。

私が知る限り、私はStack Overflow operator overloading FAQに従っていますが、何かが足りないと思います...

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

c++ - How do you retrieve a value from a map that has a pair as a key?

So lets say I have: map<pair<int, MyEnum>, string> myMap;

and I add a key value: myMap[make_pair(1, MyEnum::first)] = "something";

how can I retrieve the value "something"

so if the map was map<int, string> and I had myMap[1] = "something";

i would say string s = myMap[1]

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

c++ - C ++でクラスのプライベートメンバーを初期化する方法

こんにちは、次のようなプライベート メンバーを持つ C++ クラスがあります。

今、私はペア、つまり次のようなものを作成したい

evp.first="someint"; evp.second="somestring";

次に、この evp を edgeList にプッシュします。つまり、edgeList.push_back(evp); 今問題はセッター関数にあります。私は次のようなことをしました:

EVP ペアに vertID、edge を入力する方法がわかりません。

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

c++ - ペア要素のC++セット検索?

だから私はのセットを持っていますpairs<string ,string>

そしてfind()、ペアの「最初」にある単一の文字列を検索するために使用したいのですが、最初にその文字列を見つけた場合は、その関数から2番目に戻りたいと思います。

私の現在の試みは..

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

c++ - セットに挿入するためのペア等価演算子のオーバーロード

をセットに追加しようとしてpair<int,int>います。ペアがセット内の別のペアと同じ 2 つの値を共有している場合は、挿入しないでください。

これが私の非動作コードです:

現時点では、(1,4) ペアが既に存在するにもかかわらず、(4,1) ペアが追加されます。セットの最終的な内容は次のとおりです。

そしてそうであってほしい

オーバーロードされたメソッドにブレークポイントを設定しようとしましたが、到達することはありません。私は何を間違えましたか?

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

c++ - Google Mocked メンバー関数の std::pair 引数がコンパイルに失敗する

1 つのメソッド インターフェイスと、そのインターフェイスをモックするクラスがあります。このメソッドは引数を 1 つ取ります。その引数が型である場合にのみ、std::pair<Something, Something>コンパイルに失敗します。私は MSVC 2010 で作業しているので、問題がウェットウェアに関連している場合を除き、コンパイラまたは STL 実装に固有の問題である可能性があります。明らかな何かが欠けているに違いありません。ナノプローブのように。

エラーが明らかになるために、実際のテスト ケースのコメントを解除する必要はありません。

std::pair<>今のところ、 を でラップすることでこの問題を回避してstructいますが、これは最適ではありません。

エラー メッセージの長さはかなり残念ですが、役立つ場合があります。

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

c++ - C++でのセットとxmemory

私がやろうとしているのは、関係を与えられたペアのセットを作ることだけです。ファイルxmemoryの208行目から次のエラーが発生し続けます。

エラーC2664:'std :: pair <_Ty1、_Ty2> :: pair(std :: pair <_Ty1、_Ty2>&)':パラメータ1を'std :: pair <_Ty1、_Ty2>'から'stdに変換できません: :pair <_Ty1、_Ty2>&'c:\ program files(x86)\ microsoft visual studio 10.0 \ vc \ include \ xmemory 208

理由はわかりません。コードは次のとおりです。

0 投票する
4 に答える
1297 参照

c++ - STL マップ イテレータからのフィールドの取得

特定のオブジェクトを名前とタイプとともに保存するためのマップ コンテナーがあります。

ただし、コードの多くの部分で、次のような構造があります。

明らかに、多くの「it->second.second」はあまり明確ではなく、保守できません。将来変更された場合、たとえば、もう 1 つのフィールドをサポートするために、すべてが壊れます。したがって、次のように、フィールドにアクセスする関数によってそれらを変更しようとしています。

同様に、getObjName および getObjType も機能します。

また、イテレータがこれらのフィールドを返すようにするとより明確になることも示唆されました。

しかし、それらの機能を持たせるために STL イテレータを継承するべきではないと思いますよね? マップのラッパーを作成し、それらの関数を持つ独自のイテレータを用意する以外に、それを行う方法はありません。

では、最も適切な選択肢は何でしょうか? 私が見ていないこの問題を解決する他の方法はありますか?

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

c++ - ペアのベクトルの値にアクセスする際の問題

オブジェクト内のフィールドとしてペアのベクトルがあります。このオブジェクトには、ベクトル内のペアの値にアクセスする必要があるメソッドがあります。アクセスしたいベクトル内の場所を指すためにイテレータを使用しています。ベクトルを含むコードのスニペットを次に示します。

ヘッダー ファイル内:

コンストラクターで:

メソッド内:

ただし、このコードを実行すると y が作成されません。ブレークポイントを使用して変数を表示すると、Visual Studio にまったく表示されません。ただし、行を入れ替えると、y にはアクセスできますが、x にはアクセスできません。何か案は?

編集:次の作品を見つけました: