所以,我班的一个具有以下过载:使用相同的迭代循环通过两个标准::向量
DVector &operator+=(DVector const &other) {
if (vector.size() >= other.vector.size()) throw up; // lol.
std::for_each(other.vector.begin(); other.vector.end(), [](DVector const &pass) {
// huh?
});
}
所以,这个想法是要总结两个向量的每一个成员(嗯,每个DVector
实例包含一个std::vector<float>
构件称为vector
),例如:
如果我有含有一个DVector
一个vector
构件包含下列浮子:11.0, 23.5, 12.3
,并且然后将含有14.0, 6.5, 7.7
另一个,两者的总和应导致第一矢量保持25.0, 25.0, 25.0
。
问题:是否有任何方法可以循环遍历两个向量并且只使用一个迭代器求和它们的成员,假设向量的大小不是问题,或者我只是被迫使用了一个for (auto x: vector.size())
?
干杯,朱利安。
无需任何不同为'operator +'输出迭代器,过载就像在'+ ='之间应用一样简单总和的两个成员。感谢您的详细解答。 – 2012-04-16 15:27:53
好的,但是当你实现operator + =的时候,你只需要几个步骤就可以让一个正常的'+'只是试图预测下一个可能的问题。 :) – 111111 2012-04-16 15:29:40
实际上,我想知道是否有任何需要通过值传递?,如果传递的参数都不会传递,通过引用(和const)传递会不会更有效被修改? – 2012-04-16 15:32:38