問題タブ [stdvector]

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

c++ - 初期化時に std::vector を事前に入力しますか?

double のベクトルのベクトルのベクトルを作成し、これらすべてを手動で押し戻すことなく、既に (32,32,16) 要素を持たせたいと考えています。初期化中にそれを行う方法はありますか?(どの値がプッシュされるかは気にしません)。

3 次元配列が必要です。最初の次元には 32 個、2 番目の次元には 32 個、3 番目の次元には 16 個の要素があります。

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

c++ - 'std :: vector::イテレータそれ; ' コンパイルされません

私はこの関数を持っています:

そしてg++はこれらのエラーを出します:

それは単純なことであるに違いありませんが、それを10分間見つめた後、私は何も悪いことを見つけることができません。他の誰かがそれを見ますか?

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

c++ - std :: vector :: end()に関する質問

最近、次の関数のバグの修正を終えましたが、その答えに驚きました。私は次の関数を持っています(バグを見つける前のように書かれています):

この関数Itemは、特定の位置を持つ「items」ベクトル内のすべてのオブジェクトを検索し、それらを「items」から削除して、「vect」に配置します。後で、という名前の関数putItemsAtは反対のことを行い、アイテムを「アイテム」に追加します。初めて、正常にgetItemsAt動作します。ただし、 afterputItemsAtが呼び出されると、forループインgetItemsAtは'items'の終わりから実行されます。'it'は無効なItemポインタを指し、getPosition()segfaultsします。思い切って、に変更it!=items.end()してit<items.end()、うまくいきました。誰か教えてもらえますか?SOを見回すeraseと、イテレータを無効にする必要があるかもしれませんが、それでも、最初に機能する理由はわかりません。

リストの消去がより効率的であるため、「アイテム」をベクトルからリストに変更することを計画しているので、私も興味があります。リストには演算子!=がないので、リストに使用する必要があることはわかっています。<リストを使用して同じ問題が発生しますか?

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

c++ - vector :: frontの参照は機能しますが、vector::beginは機能しません

私はこのコードを持っています:

それについて少し説明させてください。

clientは、によってアクセス可能なプライベートメンバーを持つtr1::shared_ptrという名前のメンバーを持つオブジェクトを指すです。はのtypedefであり、のプライベートメンバーを返します。inventoryvector<itemPtr>getMisc()itemPtrtr1::shared_ptr<Item>getName()std::stringItem

基本的に、client->inventory.getMisc()要約するとstd::vector、イテレータを最初の要素に到達させようとしています。

問題は、4行目がsegfaultsであるということです。明らかに、それが指すイテレータまたはshared_ptrのいずれかが無効です。最初のcerrステートメントを使用して、ベクトル自体が有効かどうかをテストしました。正しく出力されるので、正しいと思います。

私が間違っていることはありますか?あるいは、これをデバッグするために皆さんは何をしますか?

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

c++ - unsigned char std::vector から unsigned char[]?

簡単な質問です。 を取り出してをunsigned char std::vectorで吐き出す関数をどのように作成しますか。ありがとう!unsigned char[]length

ああ、私の問題は std::vector の知識だったようです。std::vector はその値を線形に保持しないと常に信じていました。それは私の問題の多くを解決します。ありがとう!

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

c++ - std::vectorに含まれるオブジェクトのコンストラクタを呼び出す方法は?

オブジェクトの std::vector を作成するとき、これらのオブジェクトのコンストラクターが常に呼び出されるとは限りません。

これは私が得る出力です:

これは私が望むものです:

この例では、ベクターのサイズを変更してから、その要素を「手動で」初期化する必要がありますか?
ベクトルの要素が最初から最後まで順序付けられた方法で初期化されていないため、決定論的な動作を取得できないことが理由でしょうか?

私がやりたいことは、プログラム内、さまざまなコンテナー、コードのさまざまなポイントで作成されたオブジェクトの数を簡単に数え、それぞれに単一の ID を与えることです。

ありがとう!

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

c++ - std::vector は、その値型の代入演算子を使用して要素を push_back しますか?

もしそうなら、なぜですか?値型のコピー コンストラクタを使用しないのはなぜですか?

次のエラーが表示されます。

次のコードで g++ main.cpp を実行します。

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

c++ - std::vectorおよびstd::listの要素へのポインタ

私はstd::vectorいくつかのクラスの要素を持っていClassAます。std::map<key,ClassA*>さらに、いくつかのキー値をベクトルに含まれる要素へのポインターにマップするを使用してインデックスを作成したいと思います。

要素がベクトルの最後に追加されたとき(挿入されていないとき)に、これらのポインターが有効なままである(そして同じオブジェクトを指す)という保証はありますか?つまり、次のコードは正しいでしょうか。

std::list代わりに使用した場合、状況はどうstd::vectorですか?

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

c++ - ベンチマーク用のランダム ベクトルを作成する最速の方法

そのため、C++ でいくつかの並べ替えアルゴリズムを実装して遊んでいますが、アルゴリズムを実行せずに入力データを作成するのに時間がかかるため、現時点でそれらをベンチマークするのは面倒です。現在、入力の各長さ (1000、2000、...) を 10 回テストして、ある程度平均的な時間を取得しています。これらの 10 回ごとに、次のようにしvectorて、正しい長さの新しい乱数を作成します。

これを行うより良い方法はありますか?rand() を 10000 に制限することを気にする必要がありますか、それとも私の OCD 脳がラウンド数を好むだけですか? (つまり、モジュロ演算は、10 のループごとに最大で - 現在 - 10,000 まで実行されていると考えると、実際にはかなりの時間がかかっている可能性があります。) または、実行するたびに新しいベクトルを本当に作成する必要があります選別?作成されたベクトルが偏っている可能性があると感じたため、そうしてきました。そのベクトルを生成してから10回使用すると、答えがかなりずれてしまう可能性があります...

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

c++ - ベクトルを含むstd::stringを返す

「CMtoaPlugin::listArnoldNodes()」を取得して文字列の「配列」を返そうとしています

しかし、これは私が得るものです、2つのエントリ、それは正しいですが、エントリの内容はそうではありません

アーノルドシェーダーを初期化する†¡/

アーノルドシェーダーを初期化します。

私は何を間違っているのですか