我是一个初学者,我想在 cpp 中编写一个循环,其中一个向量的大小未知,由 if 函数确定。基本上我想将此 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
. 如您所见,它是根据您的目的恰当地命名的。matlab 行v=[v;A(i)];
,它连接来自A
with的值v
,等效于使用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);
阅读这些功能及其用法的详细信息。