問題タブ [stdset]

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

c++ - C++、セットをベクトルにコピー

にコピーstd::setする必要がありますstd::vector:

問題はどこだ?

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

c++ - std :: setコンテナでの定数文字ポインタの使用:メモリ消費

私は現在、メモリが非常に少ない(4MB)デバイスで作業しており、std::setを必要とするプログラムのコンポーネントがあります。このセットをstd::stringの使用からconstcharポインターの使用に移行したいのですが、std :: setで使用すると、定数文字ポインターにメモリーがどのように割り当てられるのか疑問に思いました。

std :: setへの各エントリに割り当てられたメモリは、ポインタがセットから削除されたときに解放されますか(.clear()を使用するか、スコープ外になります)、または文字列リテラルは、プログラムの実行?

ご助力ありがとうございます。:)

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

c++ - set::insertはコピーまたはポインタを保存しますC++

関数set::insertは要素またはそのコピーへのポインタを保存しますか?つまり、次のコードを実行できますか、それともポインタが削除されていないことを確認する必要がありますか?

で例を示しましたintが、実際のプログラムでは、作成したクラスを使用しています。

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

c++ - C ++で集合のベクトルを行う方法は?

セットの単純な配列を実行できます: set < char > * words = new set < char > [10] セットのベクトルを実行するにはどうすればよいですか?これにより、コンパイラエラーが発生します vector < set< char >> v。回答ありがとうございます!

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

c++ - std::set の std::inserter に .begin() と .end() を使用することに違いはありますか?

it1 と it2 に違いはありますか?

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

c++ - Pythonのdifference_updateに相当するC++?

s1 と s2 はセットです (Python セットまたは C++ std::set)
s2 の要素を s1 に追加するには (セット ユニオン)、次のようにします。

s1 から s2 の要素を削除するには (集合の差)、次のようにします。

これに相当する C++ は何ですか? コード

s1.erase() は s1 からの反復子を必要とするため、機能しません。コード

動作しますが、少なくとも Python と比較すると、過度に複雑に見えます。

もっと簡単な方法はありますか?

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

c++ - C++セット-キーがx未満の要素の数

私はaを持っていて、set<int>その中の要素の数がx未満であるかどうかを確認したいと思います。(xもintです)

私は何をすべきか?

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

c++ - C++ のセットで begin() と end() を使用する

イテレータを使用してセットを通過し、そのセットのメンバーで何かをしようとしています(存在する場合)。問題は、通常はこれが機能することですが、空のセットの最初と最後を比較して、それらが等しくないことが判明することがあります。

対象のコード スニペットは次のとおりです。

verlet_vars.verlet()[i] に含まれるセットが空であっても、プログラムは反復子をセットの末尾と比較し、それらが等しくないことを検出し、内部ループに入ります (最終的にプログラムがクラッシュします)。 force() 関数を呼び出そうとすることによって)。奇妙なのは、内部ループが呼び出される前にイテレータで何かを行う場合です。たとえば、次のようにします。

その後、内側のループの比較は常に true を返し、プログラムは正常に実行されます。

PS コマンド verlet_vars.verlet()[i] はセットのベクトルを呼び出すため、[i]

verlet() 関数:

御時間ありがとうございます。

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

c++ - C ++でのセットリスト

C ++でセットリストを作成し、要素でいっぱいにしました

だから、セットリストのすべての要素をチェックしたいのですが、何を入れる必要がありますか?

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

c++ - セットにC++の特定の範囲の要素があるかどうかを確認する方法

std::setaに範囲内の要素が含まれているかどうかを確認する必要があります。たとえば、セットがでset<int> {1, 2, 4, 7, 8}あり、int間隔[3, 5](両方のエンドポイントを含む)が指定されている場合、セットに要素があるかどうかを知る必要があります。この場合、trueを返します。ただし、間隔が[5, 6]、の場合はfalseを返します。間隔はですが[4, 4]、ではありません[5, 3]

使用できるようですがset::lower_bound、これが正しいアプローチかどうかはわかりません。また、複雑さをできるだけ低く抑えたいと思います。使用lower_boundは対数だと思いますよね?