5

私は初心者で、ベクトルのサイズが不明であり、if 関数によって決定されるループを cpp に書きたいと考えています。基本的に、この MATLAB コードを cpp コードに変換したい:

v(1)=A(1);
for i=2:length(A)
     if (abs((A(i)-v))>10^(-5))
       v=[v;A(i)];      
     end
end

ループが始まる前に v のサイズが決定されないことはコードで明らかですが、このコードを cpp でどのように記述すればよいでしょうか?

4

3 に答える 3

4

C ++では、値を追加できる値のコンテナーが必要で、実行時に展開される場合は、を使用しstd::vectorます。ご覧のとおり、目的に応じて適切な名前が付けられています。からのv=[v;A(i)];値を連結するmatlab行は、関数を使用するのと同じです。Avstd::vector::push_backv.push_back(A[i]);

于 2013-02-05T16:28:09.707 に答える
2

標準C++ライブラリにはstd::vector、コメントの1つで示されているクラスがあります。クラスには事前定義されたサイズはvectorありません。メンバーオブジェクトを追加すると、ベクトルのサイズが動的に大きくなります。一般的な標準C++ライブラリ、特にベクターについて読むことは価値があるかもしれません。

于 2013-02-05T16:28:17.710 に答える