所以,我班的一個具有以下過載:使用相同的迭代循環通過兩個標準::向量
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