問題タブ [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.
c++ - 2 つの std::vector の連結
2 つの s を連結するにはどうすればよいstd::vector
ですか?
c++ - ペアの2番目の要素に基づいてペアのベクトルを並べ替えるにはどうすればよいですか?
ペアのベクトルがある場合:
ペアの2番目の要素に基づいてリストを昇順で並べ替える簡単な方法はありますか?
作業を行う小さな関数オブジェクトを作成できることは知っていますが、STLの既存の部分を使用std::less
して、作業を直接行う方法はありますか?
編集:ソートするために3番目の引数に渡す別の関数またはクラスを作成できることを理解しています。問題は、標準的なものからそれを構築できるかどうかです。私は本当に次のようになります:
c++ - 構造体Cの要素のベクトルを宣言し、要素の数をi(int型の入力)にします。
このコードを見てください(そして知識の欠如を許してください)。解決できなかったエラーを出力します。構造体Cの要素のベクトルを宣言する必要がありますが、要素の数はi(int型の入力)である必要があります。
他のアプローチも試しましたが、すべてでエラーが発生しました(Cをintに変換できないなど)。これどうやってするの?
c++ - ベクトルに格納されたオブジェクトへのポインターを使用する... c++
グローバル スコープに myObjects のベクトルがあります。
メソッドには、ベクター内の要素の 1 つへのポインターが渡されます。このメソッドは、次の要素に到達するためにポインタをインクリメントできますか?
または、代わりにそれを渡してstd::Vector<myObject>::iterator
インクリメントする必要がありますか?
今のところ、ベクトルはその間変更されないと仮定します。
c++ - ポインタのベクトルテンプレートクリア関数が「未定義の参照」メッセージでコンパイルに失敗します
私のプログラムでは、私が持っているポインタのさまざまなstd::vectorsをクリアするための小さな関数を作成しました。
このようなデストラクタでこの関数を呼び出すときから、私はここで何か間違ったことをしたに違いありません:
次の未定義の参照を2回取得します。
std :: allocatorが何であるかをよく知らないことを認めなければならないので、ここで問題が何であるかを推測することはできません。どんな助けでも本当にありがたいです。前もって感謝します!
-レフテリス
c++ - std::関数のベクトル
std::vector にいくつかの関数を含め、より多くの関数をリアルタイムで追加できるようにしたい。すべての関数には、次のようなプロトタイプがあります。
ボイド名(SDL_Event *イベント);
関数の配列を作成する方法は知っていますが、関数の std::vector を作成するにはどうすればよいですか? 私はこれを試しました:
しかし、どれも機能しませんでした。助けてください
c++ - std::vector 下方向にサイズ変更
resize(n)
C++ 標準では、 、 with n < size()
、または のいずれかによる容量への副作用については何も述べていないよう
clear()
です。
push_back
との償却コストについてのステートメントを作成しますpop_back
- O(1)
通常の種類の容量変更を CLRS アルゴリズムで行う実装を想像できます (例: 拡大すると 2 倍になり、縮小すると半分になりsize to < capacity()/4
ます)。(Cormen Lieserson Rivest Stein)
実装の制限についての参照はありますか?
c++ - ベクトルのベクトル、不正な割り当て
Contact という名前のクラスがあり、127 行 20 列のマトリックスのようなオブジェクトへのポインターのデータ構造を構築したいと考えています。この方法で std::vector クラスを使用しようとしました
次に、ヘッダーで次のように宣言した
以前に初期化して宣言したマトリックスをそれに割り当てます(このステップは、基本的に、より明確で短い方法でそれを行う方法がわからないためです)。
しかし、次のような push_back 関数を使用して
しばらくするとエラーが発生し (「'std::bad_alloc' のインスタンスをスローした後に終了します」)、修正方法がわかりません。
マトリックスをインスタンス化して初期化するための他の良い方法はありますか? ベクトルのベクトル (boost::multiarray ..?) を使用する代わりに、他の解決策を提案しますか?
ありがとう(ばかげた質問でごめんなさい、私は貧しい学生です:)
編集:エラーが見つかりました(範囲外の割り当てのみ)。この種のデータ構造に関する一般的な提案があれば、私はまだここにいます...
c++ - C++ で std::vector に配列を格納することに関する質問
以下について不明です。
まず、このコードは正常にコンパイルされます。
次のコードはほぼ同じです。
しかし、最後に含める極端な長さのエラー出力がスローされます。コンパイラがこれら 2 つのプログラムをそれほど異なる方法で扱うのはなぜですか? それは間違いなく直感的ではありません。
g++ を使用してコンパイルしている私のシステムでスローされるコンパイラ エラーは次のとおりです。
c++ - c++ std vector - 無効化されたイテレータの質問
ポインターの標準ベクトルがあります。
このベクトルへのイテレータが無効になる可能性があるのは、どのような状況ですか?
オブジェクトが削除されると、それを参照するベクトル反復子が無効になると信じる理由があります。しかし、これは私には正しくないようです。これが Managed .NET のコンテナーの標準的な動作であると私は信じていますが、これは C++ ではうまくいかないように思えます。
これは Iterator It を無効にするべきですか? そうすべきではないように思えますが、デバッグするのが難しい問題で立ち往生しています! (回避策が怖いです-整数インデックスを介してベクトルを反復処理します。(これはうまく機能します...上記が無効化の問題を引き起こしている理由が怖いだけです)。
お時間をいただきありがとうございます。
編集:アドバイスをありがとう。一般的なコンセンサスは、上記のコードは危険ですが、Iterator を無効にしないということです。Visual Studio 2008 デバッガーでエラーが発生したと思います。プロジェクトを翌日開いた後、この無効化の問題がなくなったからです。そのため、コンピューターの多くの場合と同様に、他に何も機能しない場合は、リセットしてみてください。