그래서, 내 클래스 중 하나는 다음과 같은 과부하가 있습니다같은 반복자를 사용하여 두 표준 : : 벡터를 통해 반복
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
라고 :
I 하나 DVector
다음 플로트 함유 vector
부재를 함유 한 경우 11.0, 23.5, 12.3
을하고 14.0, 6.5, 7.7
를 함유하는 또 하나는, 양자의 합계가 제 1 벡터가 01,234 지주로 연결되어야.
질문 : 벡터의 크기가 문제가 아닌 것으로 가정하면 두 벡터를 반복하고 그 구성원을 합계하는 방법이 있습니까? 아니면 그냥 for (auto x: vector.size())
을 사용해야합니까?
건배, 줄리안.
어떤 다른 필요가 없습니다 : 여기
는 일부 참조http://en.cppreference.com/w/cpp/algorithm/transform
http://www.cplusplus.com/reference/algorithm/transform/
그리고 당신은 다른 출력을 할 때 back_inserter 당신의 친구입니다입니다 'operator +'에 대한 반복자 출력을 사용하면 오버로드는 사이에'+ ='를 적용하는 것처럼 간단합니다 합계의 두 멤버. 자세한 답변을 주셔서 감사합니다. –좋아,하지만 종종 연산자 + =를 구현할 때 당신은 단지 정상적인'+'을 갖는 두 단계만으로도 다음에 발생할 가능성이있는 질문을 예측하려고 시도했을뿐입니다. :) – 111111
실제로 전달 값을 수행 할 필요가 있는지 궁금하네요. 전달 된 인수가 둘 다 가정하지 않으면 전달 참조 (및 const)를 수행하는 것이 더 효과적이지 않을까요? 수정 되나요? –