問題タブ [push-back]

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 に答える
7702 参照

c++ - 地図> > ペアにプッシュ バックしますか?

私はこのmap<string, vector <pair<int, int> > >変数を持っていて、値をプッシュ バックしていますが、code::blocks はペアに push_back というメンバー関数がないことを示しています。ではなくペアを押し戻すにはどうすればよいpair<>.push_back()ですか?

これは基本的に私がしていることです:

エラーは次のとおりです。

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

c++ - オブジェクトがプッシュバックされて関数が終了すると、C++ベクトルプッシュバックがクラッシュします

問題は、ベクトルにアクセスしてイテレータを削除する別のクラスからの愚かなエラーでした。以下のコードとは何の関係もありません。時間を無駄にしてすみません。

初歩的なものが欠けているに違いない。オブジェクトを作成し、そのデータを操作して、それをベクトルにプッシュする関数があります。関数が終了した瞬間、プログラムはSIGSEVでクラッシュし、(Kdevelop gcc 4.5 gdb)を見つめたままになります。

ポインタを保存していません。インスタンス化されたオブジェクトを保存しようとしています。

それが全体の機能です。

push_back関数は、オブジェクトをプッシュバックするときにオブジェクトをコピーしませんか?push_backがtemp_personを破棄しようとしているため、デストラクタが呼び出されますか?クラスIndividualでコピー演算子を定義していません。私は以前にこの問題に遭遇したことがあり、それを理解したことはありません。これは、関数の最後でtemp_personがスコープ外にあるために発生しますか?ありがとうございました !

編集:クラス個人

命令のベクトルには別の構造体のベクトルがあることに注意してください。

ここでクレイジーなことは何もありません。

これは、population.push_backによって取得された浅いコピーの問題である可能性がありますか?

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

c++ - ベクトルメモリの割り当てを賢くする

非常に大きな可能性のある数のベクトルを繰り返し処理し、偶数要素と奇数要素を新しい別のベクトルにコピーする必要があるとしましょう。(ソース ベクトルは、奇数に対する偶数の比率を持つことができます。すべてが偶数、すべてが奇数、またはその中間である可能性があります。)

簡単にするために、push_backは次のような場合によく使用されます。

ただし、パフォーマンスが最優先される並べ替えアルゴリズムなどの実装の一部として使用すると、これが非効率的で有害になるのではないかと心配しています。たとえば、QuickSort では、このように要素を分離します。

事前にメモリを割り当てるために使用できるreserve()ため、必要な割り当ては 1 つだけですが、ソース ベクター全体を 2 回反復する必要があります。

もちろん、ソース ベクトルのサイズと同じ量のスペースを割り当てることもできます。これは、新しいベクトルがそれ以上保持する必要がないためです。

私が見逃しているより良い方法はありますか?push_back()プログラマーにとってこの種のことを管理することは通常信頼されていますか、それとも機密性の高いアルゴリズムにとって負担になる可能性がありますか?

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

multithreading - OpenMP マルチスレッドによる Stl コンテナ ベクトル push_back

オブジェクトを別のスレッドからベクターに push_back したい。いいえ。スレッド数はマシンによって異なります。

問題は、それが機能しているかどうかわからないことです。私はクラッシュしません。openMP を使用しています。openMP は何かをキューに入れていますか? おそらく、BestCoreSpaces.reserve(tid) でコンテナーのメモリを予約するか、BestCoreSpaces.assign(tid, Space) で要素の量を割り当てるだけで十分です。誰か助けてくれませんか?

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

c++ - クラスオブジェクトを使用したC++ベクトルpush_back

私はこのサイトをしばらく使用していて、これまで新しい質問をする必要はありませんでした(これまでに必要だったすべての回答が見つかりました)。

複数のオブジェクトをベクターにプッシュバックする必要がありますが、VSはエラーをスローします(これはヒープの破損が原因である可能性があります。これは、PVSS00DataGate.exeまたはロードされたDLLのバグを示しています)。自分のために。

これが私がやろうとしていることです。最初のオブジェクトをベクターにプッシュバックしようとすると、エラーが発生したときに2番目のオブジェクトをプッシュバックしようとします。

dataLoggerはで宣言されています

これがクラスHWObjectです。コードであなたを圧倒したくありませんでした。

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

c++ - push_back() がカスタム データ型 (テンプレート クラス) に対して機能しない

カスタム データ クラス T で push_back() が機能していないようです。コンパイル時に次のエラーが発生します。

エラー: 'Vector::push_back(int&)' の呼び出しに一致する関数がありません</p>

誰かが私にそれがなぜなのか説明できますか? ありがとうございました。

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

c++ - C++ で STL リストに push_back() を使用すると、アクセス違反、クラッシュが発生する

自作のゲーム エンジンを使用してゲームを作成していますが、リストの使用に問題があります。

私のプログラムには、BoardState という構造があります。これらの各構造には、子と呼ばれる BoardState ポインターのリストがあります。これは、ゲームの AI 用に BoardStates のツリーを作成するためです。

ツリーの作成を支援するために、MakeBoard という関数があります。この関数は、新しいボードを作成するために必要なすべての情報を渡され、その新しいボードへのポインタを親ボードの子リストの最後に追加する必要があります。関連する関数 MakeBoard は次のとおりです。

{

}

余分なコメント部分は、他のアイデアが機能するかどうかを確認するために試していた場所です。

残念ながら、これによりプログラムは次のエラーをスローします。

アクセス違反読み取り場所 0xcdcdcdd1。

デバッガーを掘り下げると、STL リスト ファイルで問題が発生していることがわかりました。これらは、コール スタックの上位 3 つの呼び出しです。

OpenGL_Engine_Test1.exe!std::list >::_Insert(std::list >::_Const_iterator<1> _Where=..., tagBoardState * const & _Val=0x049a1a80) 行 718 + 0x10 バイト C++

次に、list が定義されているファイルを開き、_insert 関数内の問題行を指摘します。

void _Insert(const_iterator _Where, const _Ty& _Val) { // _Val を _Where に挿入します

#if _HAS_ITERATOR_DEBUGGING if (_Where._Mycont != this) _DEBUG_ERROR("list insert iterator outside range"); #endif /* _HAS_ITERATOR_DEBUGGING */

これ以上、私は本当に知りません。なぜこの問題が発生しているのかわかりません。「アクセス違反」とは、基本的に、存在しないものにアクセスしようとしている、アクセスできない、または何らかのスコープの問題があることを意味することを知っていますが、どのようにのいずれかが該当します。

誰かが私を正しい方向に向けることができれば、本当に感謝しています. 私は多くの検索を行いましたが、見つけたほとんどすべてがベクトルに関連しており、正確に私の問題ではないようです.

0 投票する
6 に答える
19286 参照

c++ - C++ では、ベクトル関数 push_back は空の配列のサイズを増やしますか?

簡単な質問です。サイズ 20 のベクトルを宣言するとしましょう。次に、push_back を使用してそれにいくつかの整数を追加したいとします。

ベクターの容量は現在 22 ですか、それとも 20 のままですか? インデックス [19] と [20] にそれぞれ 5 と 14 が追加されましたか? それとも [0] と [1] ですか?

0 投票する
7 に答える
14029 参照

c++ - vector :: push_backメモリの内部で何が起こりますか?

私の質問は、の効果に関するvector::push_backものです。ベクトルの最後に要素が追加されることはわかっていますが、フードの下ではどうなりますか?

IIRCメモリオブジェクトは順番に割り当てられるので、私の質問はvector::push_back、ベクトルの直後により多くのメモリを割り当てるかどうかです。割り当てられる場合、その場所に十分な空きメモリがない場合はどうなりますか?または、ベクトルが継続する場所に「ホップ」するように、「終了」にポインタが追加されている可能性がありますか?それとも、十分なスペースがある別の場所にコピーして古いコピーを破棄するだけで再割り当てされますか?それとも何か他のもの?

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

c++ - 構造体初期化のベクトル

push_backメソッドを使用して構造体のベクトルに値を追加する方法を知りたい

では、どうすれば要素を追加できますか?

文字列名(サブジェクト名)を初期化する関数があります

関数呼び出し