2012-04-04 4 views

答えて

8

号には、あなたはおそらく、あなたはあなたが合うようにサイズを設定するために、そのresize()メンバ関数を使用することができますstd::vector<double> Temp_data;

を使用します。

編集:できるだけ具体的にnewを使用しないでください(この場合、非常に簡単に行うことができます)。 newの直接の使用は、かなりの種類のバグの絶え間ないソースです。 std::vectorは、newで正しくなるのが難しいコーナーケースの大部分を処理し、範囲外になったときにデータが確実に消去されるようにします。

私はこれまで述べてきました。一度は、newを使用したコードを書くしかありませんでした。今、あなたには選択肢があります。あなたはそれを行使すべきです。現代のコンパイラと標準ライブラリを考えると、newの配列を割り当てる理由はほとんどありません。

+0

しかし、なぜベクトルのサイズを指定する必要がありますか? –

+0

@Rohit:あなたはしません。あなたは空の 'vector'で始まり、' push_back'を使って必要なだけ多くの項目を追加することができます(もちろん、上限まで)。しかし、ユーザがサイズを指定している場合は、 'resize'を使ってそのサイズにすることができます。 –

+0

ありがとう@JerryCoffin。しかし、私はCArrayまたはArraysのいずれかを使用したい。 – gishara

2

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

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

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

+1

これを避けることはできません。 –

+0

ベクターよりも配列のコントロールが豊富です –

+1

どのようなコントロールですか? –

2

T * pData

pData = new T [NUM_ELEMENTS];

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

関連する問題