我有下一个问题:我创建了结构:
struct Series : vector<Candle>
{
Security Sec;
int LookFor;
int TF;
int Corrector;
string ID;
int line;
Series(){};
Series (int _lookfor);
void Update();
};
构造函数:
Series::Series (int _lookfor)
{
LookFor=_lookfor;
for (int i = 1; i<=LookFor; i++)
{
Candle cantype = Candle(i);
push_back(cantype);
}
}
因此,我们称这个构造函数为它用蜡烛值填充对象。LookFor - 是向量系列中的许多蜡烛。初始化后我想更新这个系列(如果有更多新蜡烛,我想删除最后一个并在矢量系列的开头插入新的)
void Series::Update()
{
if (size()==LookFor)
{
if (newer(cantype,c1))
{
Candle cantype = Candle(1);
Candle c1 = at(0);
pop_back();
emplace(begin(),cantype);
}
}
我需要初始化这些系列的向量:
向量向量;vec.push_back(系列(3));
构造函数完成了它的工作,一切都很好。但后来我更新了它们:
for (size_t x =0; x<=size()-1;x++) vec[x].Update();
我有一个问题:它无法保存向量中的更改。在 Update 方法中一切都很好,它在自身中插入所需的蜡烛,但随后方法结束 - 向量的状态(vec 的每个元素)没有变化。在方法中我们看到了变化,但是在它的向量变成了类似构造函数之后,状态还是一样的。请告诉我,我做错了什么?