5

我是一个初学者,我想在 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中写这个代码呢?

4

3 回答 3

4

在 C++ 中,如果我们想要一个可以添加值并在运行时扩展的值容器,我们使用std::vector. 如您所见,它是根据您的目的恰当地命名的。matlab 行v=[v;A(i)];,它连接来自Awith的值v,等效于使用std::vector::push_back函数:v.push_back(A[i]);

于 2013-02-05T16:28:09.707 回答
2

标准 C++ 库有一个类std::vector,如注释之一所示。该类vector没有预定义的大小;当您添加成员对象时,向量的大小会动态增长。总体上了解标准 C++ 库,尤其是向量,可能值得一读。

于 2013-02-05T16:28:17.710 回答
1

以下代码可用于定义未定义大小的向量。

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);

阅读这些功能及其用法的详细信息。

于 2017-10-08T14:45:57.853 回答