【发布时间】:2020-04-20 16:56:27
【问题描述】:
我的任务是通过将两个列表的元素相加来形成一个列表 Z。
如果它更简单,那么我有两个列表X {x1, x2, ... xn} & Y {y1, y2, ..yn} - >> 我需要形成 Z。
X & Y 大小相同。
Zi = Xi + Yi
我解决了这个问题,但我不能。我该如何解决这个问题?
代码:
void IndividualTask(list<float>& lisX, list<float>& lisY) {
list<float> Z;
int i = 0;
list<float>::iterator x = lisX.begin();
list<float>::iterator y = lisY.begin();
for (list<float>::iterator it = lisX.begin(); it != lisX.end(); ++it) {
Z.push_back((x + i) + (y + i));
i++;
}
}
【问题讨论】:
-
如果
list<float>是std::list,你不能将list<float>::iterator和int相加,比如(x + i),你只能对它们做++和--.您只能将整数与随机迭代器相加,例如来自std::vector的迭代器。 -
基本上,您想要对 2 个列表求和。所以
i是没有意义的,它只是给你的,只是为了证明你想要什么。您需要同时增加lisX和lisY然后Z.push_back*xiter + *yiter(或任何您将调用的迭代器)