Кстати, мне никогда не нравилось, когда operator + () не коммутативный (например, конкатенация строк). Что-то об этом просто кажется неправильным ...
ал изучать C ++, поэтому из-за недостатка знаний и опыта я не знаю, почему что-то столь простое для новичка, как то, что я собираюсь описать, уже отсутствует в STL. Чтобы добавить вектор к другому вектору, вы должны напечатать это:
v1.insert(v1.end(), v2.begin(), v2.end());
Мне интересно, действительно ли люди просто перегружают оператор + =, чтобы сделать это менее многословным, например, с эффектом
template <typename T>
void operator+=(std::vector<T> &v1, const std::vector<T> &v2) {
v1.insert(v1.end(), v2.begin(), v2.end());
}
так что вы можете
v1 += v2;
У меня также есть это настроено для push_back для "+ =" одного элемента до конца. Есть ли какая-то причина, по которой эти вещи не следует делать или их специально избегают люди, хорошо владеющие C ++?