我是一個初學者,我想在cpp中編寫一個循環,其中一個向量具有由if funcion確定的未知大小。 基本上我想這個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這個代碼?
我是一個初學者,我想在cpp中編寫一個循環,其中一個向量具有由if funcion確定的未知大小。 基本上我想這個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這個代碼?
在C++中,如果我們需要一個值的容器,我們可以添加值並在運行時擴展,我們使用std::vector
。正如你所看到的,它適合你的目的。連接A
和v
的值的matlab行v=[v;A(i)];
相當於使用std::vector::push_back
函數:v.push_back(A[i]);
。
標準C++庫有一個類std::vector
,如註釋之一所示。 vector
類沒有預定義的大小;在添加成員對象時,矢量的大小會動態增長。閱讀一般的標準C++庫和特別的向量可能是值得的。
以下代碼可用於定義未定義大小的向量。
vector<string> v;
記住的是,對於<string>
你需要下面的頭文件:
#include<string>
這一切後,你可以把使用push_back()
功能要素如下 -
v.push_back('a');
v.push_back('b');
v.push_back('c');
v.push_back('c');
還有一些其他有用的你可以給手錶的功能 -
front();
back();
begin();
end();
rbegin();
rend();
max_size();
capacity();
resize();
empty();
at(n);
閱讀這些功能及其用法的詳細信息。
std :: vector怎麼樣? – thang
http://www.cplusplus.com/reference/vector/vector/push_back/ – dchhetri
爲什麼你想去找*未定義的*,C++已經足夠了! – iammilind