如何定义具有未定义大小的向量

时间:2013-02-05 16:24:04

标签: c++ vector size

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

3 个答案:

答案 0 :(得分:4)

在C ++中,如果我们想要一个可以向运行时添加值并在运行时扩展的值容器,我们使用std::vector。正如您所看到的,它恰如其分地命名。 matlab行v=[v;A(i)];Av的值相连,相当于使用std::vector::push_back函数:v.push_back(A[i]);

答案 1 :(得分:2)

标准C ++库有一个类std::vector,如其中一条注释所示。 vector类没有预定义的大小;在添加成员对象时,向量的大小会动态增长。一般来说,阅读有关标准C ++库和特别是vector的文章可能是值得的。

答案 2 :(得分:0)

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

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

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