問題タブ [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 に答える
3127 参照

c++ - ベクトルでpush_backを引き起こす簡単な操作と思われるもののセグメント化障害

私は2^1000のすべての数字を追加するプロジェクトオイラーのプログラムに取り組んでいます。これまでのところ、プログラムのセグメンテーション違反が約5桁に達したときに追跡し、関数carry()の61行目のベクトルに1をプッシュしようとしています。

これを引き起こしているのは何ですか?

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

c++ - C++ ベクトル push_back() は同じ型の別のベクトルを上書きしますか?

この方法で nth_best_parse という名前のクラスを定義しました。

次に、この nth_best_parse のベクトルを 2 つの異なるクラスのメンバーとして宣言しました。

次に、このプログラムを gdb で実行し (ちなみに、Linux Ubuntu 9.04、g++ 4.3.3、GNU gdb 6.8-debian を使用しています)、compute_n_best_parses() の定義の最後にブレークポイントを設定します。私が欲しかったこの関数の正確な呼び出しを見つけてください。私はセグメンテーション違反からさかのぼっていました)。gdb がブレークポイントに達したとき、一連のコマンドを発行したところ、gdb の出力は次のようになりました。

BPCFGParser.cpp の 639 行目は次のようになりました。

これは、ファイルの先頭で次のように定義されたマクロです。

ちなみに、クラス Traversal は次のように定義されています。

したがって、実際には、クラス BPCFGParser のインスタンスのメンバーであるベクトル n_best_pairs_for_traversals に何かをプッシュしています。push_back() コードは、クラス Edge のインスタンスのメンバーであるベクトル n_best_parses を上書きします。どうしてこれが可能になるのでしょうか?

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

java - Javaのpush_back()およびpush_front()

push_back()実装とpush_front()メソッドを行うJavaのコレクションクラスはありますか?

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

c++ - ベクトル (push_back); g++ -O2; セグメンテーション違反

vector に問題がありますが (push_back の使用で)、追加の g++ フラグ -O2 を使用した場合にのみ表示されます (必要です)。

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

boost - boost :: ptr_vector <...>::iteratorを別のboost::ptr_vectorにプッシュバックしますか?

私は次のコードを持っています(ここに入力しただけで、タイプミスなどがあるかもしれません):

私の問題は、イテレータをプッシュバックできないことです。イテレータからポインタを取得できません。

Is there an easy way i didnt see, or are boosts ptr_vector the false choice for this case?

Thanks in advance.

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

vector - ベクトルはすべての push_back で再割り当てを行います

IDE - Visual Studio 2008、Visual C++

  1. コピー コンストラクターを持つカスタム クラスClass1があります。
  2. ベクターもあるよ
  3. データは次のコードを使用して挿入されます

}

これで、挿入ごとにベクターが再割り当てされ、既存のすべてのコンテンツが新しい場所にコピーされます。たとえば、ベクトルに 5 つの要素があり、6 番目の要素を挿入すると、前の 5 つの要素と新しい要素が新しい場所にコピーされます (コピー コンストラクターにログ ステートメントを追加することでわかりました)。

しかし、 reserve()を使用すると、これは期待どおりには起こりません! 次の質問があります

  1. 常に予約ステートメントを使用することは必須ですか?
  2. vector はpush_backを実行するたびに再割り当てを行いますか? それとも私がデバッグしているために起こりますか?
0 投票する
2 に答える
1024 参照

c++ - 2 つのメソッドを持つ push_back プライベート ベクトル、1 つが機能しない

double のプライベート ベクトルを持つクラスがあります。これらの値にアクセスまたは変更するには、最初に次のような方法を使用しました

これは、必要なもののために多くの演算子をオーバーロードする必要があることがわかるまで、しばらくの間機能しました。そのため、値の代わりにベクトルを直接取得および設定するように変更しようとしました。

ここで、プライベートな classA 要素を持つ classB があり、読み取りと書き込みを行う get メソッドと set メソッドもあるとします。問題は、classA の終了ベクトルに値をプッシュバックしようとしたときでした。

これはベクトルに対してまったく何もしません。変更されていないままで、理由がわかりません... 何かアイデアはありますか?

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

c++ - ベクトルpush_backアクセス違反

これはおそらくばかげたエラーですが、それを修正しようとすると私は頭がおかしくなります。

私は構造体を持っています:

そしてクラス:

ここで、addMarkerメソッドで:

このpush_backにより、アクセス違反が発生します。「OgreAR.exeの0x00471679で未処理の例外:0xC0000005:アクセス違反の読み取り場所0x00000018」。

テストとして、私はこれを試しました:

これは正常に機能します。

私は何が間違っているのですか?!ありがとう!

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

c++ - push_back() は常にベクトルのサイズを増やしますか?

サイズがわかっている std::vector<T> を作成するコードがあります。

push_back を呼び出すとサイズが n+1 に増えますか?