static double Temp_data [TABLE_SIZE];
ユーザ入力に応じて配列のサイズを変更したいと思います。 これは可能ですか? 私を助けてください。おかげさまで
static double Temp_data [TABLE_SIZE];
ユーザ入力に応じて配列のサイズを変更したいと思います。 これは可能ですか? 私を助けてください。おかげさまで
号には、あなたはおそらく、あなたはあなたが合うようにサイズを設定するために、そのresize()
メンバ関数を使用することができますstd::vector<double> Temp_data;
を使用します。
編集:できるだけ具体的にnew
を使用しないでください(この場合、非常に簡単に行うことができます)。 new
の直接の使用は、かなりの種類のバグの絶え間ないソースです。 std::vector
は、new
で正しくなるのが難しいコーナーケースの大部分を処理し、範囲外になったときにデータが確実に消去されるようにします。
私はこれまで述べてきました。一度は、new
を使用したコードを書くしかありませんでした。今、あなたには選択肢があります。あなたはそれを行使すべきです。現代のコンパイラと標準ライブラリを考えると、new
の配列を割り当てる理由はほとんどありません。
動的メモリ割り当てを使用します。
int size;
cin>>size
int *ptr = new int[size];
これを避けることはできません。 –
ベクターよりも配列のコントロールが豊富です –
どのようなコントロールですか? –
T * pData
pData = new T [NUM_ELEMENTS];
基本的にnew演算子を使用します。任意のC++リファレンスからの新機能の詳細を読む
しかし、なぜベクトルのサイズを指定する必要がありますか? –
@Rohit:あなたはしません。あなたは空の 'vector'で始まり、' push_back'を使って必要なだけ多くの項目を追加することができます(もちろん、上限まで)。しかし、ユーザがサイズを指定している場合は、 'resize'を使ってそのサイズにすることができます。 –
ありがとう@JerryCoffin。しかし、私はCArrayまたはArraysのいずれかを使用したい。 – gishara