1

私は次のように定義された配列を持っています;

static double Temp_data [TABLE_SIZE];

ユーザーの入力に応じて配列のサイズを変更したい。これは可能ですか?私を助けてください。ありがとう。

4

3 に答える 3

8

いいえ、おそらく使いたいでしょうstd::vector<double> Temp_data;

resize()次に、そのメンバー関数を使用して、適切と思われるサイズを設定できます。

編集:明確にするために、可能であれば直接使用することは通常避けたいと思いnewます(この場合、非常に簡単に使用できます)。を直接使用することnewは、かなりの数の種類のバグの絶え間ない原因です。std::vector修正が難しいかなりの数のコーナーケースを処理newし、データがスコープ外になったときにデータが確実にクリーンアップされるようにします。

前にも言いましたが、ここで繰り返します。かつては、を使用するコードを作成する以外に選択肢はほとんどありませんでしたnew。今、あなたには選択肢があります-そしてあなたはそれを行使するべきです。最新のコンパイラと標準ライブラリを考えると、配列に。を割り当てる理由はほとんどありませんnew

于 2012-04-04T04:52:28.267 に答える
2

動的メモリ割り当てを使用します。

int size;
cin>>size
int *ptr = new int[size];

http://www.cplusplus.com/doc/tutorial/dynamic/

于 2012-04-04T04:51:59.347 に答える
2

T *pData

pData = 新しい T[NUM_ELEMENTS];

基本的に new 演算子を使用します。C++ リファレンスから new の詳細を読む

于 2012-04-04T04:53:22.497 に答える