Кстати, мне никогда не нравилось, когда 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 ++?

Ответы на вопрос(4)

Ваш ответ на вопрос