問題タブ [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.
php - PHP には C++ の std::pair がありますか?
キーが文字列のペアである連想配列をPHPで作成したいと思います。
最初は、文字列を途中で何らかの独自の仕切りで連結し、後でそれらを分離することを検討していましたが、これはペアを使用するためのハッキーな回避策のようです。
次のコードを検討してください。
PHP では配列を配列のキーとして使用できないため、明らかにこのコードは機能しません。文字列を連結して後で解析せずに、このようなことを行う良い方法はありますか?
編集
これをやりたいのには理由があります。私は を持っておりarray(key=string1,value=array(key=string2,value=occurrences))
、文字列のペアの上位 5 (出現数) を見つけようとしています。だから私は基本的にこれを 1 次元配列にフラット化し、それを並べ替えて上位 5 つを簡単に取得できるようにしようとしています。上記で説明した除算アルゴリズムで実行できますが、これは好ましくないため、代替手段を求めています。
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に従っていますが、何かが足りないと思います...
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]
c++ - C ++でクラスのプライベートメンバーを初期化する方法
こんにちは、次のようなプライベート メンバーを持つ C++ クラスがあります。
今、私はペア、つまり次のようなものを作成したい
evp.first="someint";
evp.second="somestring";
次に、この evp を edgeList にプッシュします。つまり、edgeList.push_back(evp); 今問題はセッター関数にあります。私は次のようなことをしました:
EVP ペアに vertID、edge を入力する方法がわかりません。
c++ - ペア要素のC++セット検索?
だから私はのセットを持っていますpairs<string ,string>
そしてfind()
、ペアの「最初」にある単一の文字列を検索するために使用したいのですが、最初にその文字列を見つけた場合は、その関数から2番目に戻りたいと思います。
私の現在の試みは..
c++ - セットに挿入するためのペア等価演算子のオーバーロード
をセットに追加しようとしてpair<int,int>
います。ペアがセット内の別のペアと同じ 2 つの値を共有している場合は、挿入しないでください。
これが私の非動作コードです:
現時点では、(1,4) ペアが既に存在するにもかかわらず、(4,1) ペアが追加されます。セットの最終的な内容は次のとおりです。
そしてそうであってほしい
オーバーロードされたメソッドにブレークポイントを設定しようとしましたが、到達することはありません。私は何を間違えましたか?
c++ - Google Mocked メンバー関数の std::pair 引数がコンパイルに失敗する
1 つのメソッド インターフェイスと、そのインターフェイスをモックするクラスがあります。このメソッドは引数を 1 つ取ります。その引数が型である場合にのみ、std::pair<Something, Something>
コンパイルに失敗します。私は MSVC 2010 で作業しているので、問題がウェットウェアに関連している場合を除き、コンパイラまたは STL 実装に固有の問題である可能性があります。明らかな何かが欠けているに違いありません。ナノプローブのように。
エラーが明らかになるために、実際のテスト ケースのコメントを解除する必要はありません。
std::pair<>
今のところ、 を でラップすることでこの問題を回避してstruct
いますが、これは最適ではありません。
エラー メッセージの長さはかなり残念ですが、役立つ場合があります。
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
理由はわかりません。コードは次のとおりです。
c++ - STL マップ イテレータからのフィールドの取得
特定のオブジェクトを名前とタイプとともに保存するためのマップ コンテナーがあります。
ただし、コードの多くの部分で、次のような構造があります。
明らかに、多くの「it->second.second」はあまり明確ではなく、保守できません。将来変更された場合、たとえば、もう 1 つのフィールドをサポートするために、すべてが壊れます。したがって、次のように、フィールドにアクセスする関数によってそれらを変更しようとしています。
同様に、getObjName および getObjType も機能します。
また、イテレータがこれらのフィールドを返すようにするとより明確になることも示唆されました。
しかし、それらの機能を持たせるために STL イテレータを継承するべきではないと思いますよね? マップのラッパーを作成し、それらの関数を持つ独自のイテレータを用意する以外に、それを行う方法はありません。
では、最も適切な選択肢は何でしょうか? 私が見ていないこの問題を解決する他の方法はありますか?
c++ - ペアのベクトルの値にアクセスする際の問題
オブジェクト内のフィールドとしてペアのベクトルがあります。このオブジェクトには、ベクトル内のペアの値にアクセスする必要があるメソッドがあります。アクセスしたいベクトル内の場所を指すためにイテレータを使用しています。ベクトルを含むコードのスニペットを次に示します。
ヘッダー ファイル内:
コンストラクターで:
メソッド内:
ただし、このコードを実行すると y が作成されません。ブレークポイントを使用して変数を表示すると、Visual Studio にまったく表示されません。ただし、行を入れ替えると、y にはアクセスできますが、x にはアクセスできません。何か案は?
編集:次の作品を見つけました: