Самая короткая программа на C, все еще вызывает segfault

Я предпочитаю тот, который уже упоминался:

a.insert(a.end(), b.begin(), b.end());

Но если вы используете C ++ 11, существует еще один общий способ:

a.insert(std::end(a), std::begin(b), std::end(b));

Кроме того, это не вопрос, но рекомендуется использовать reserve перед добавлением для повышения производительности. И если вы конкатенируете вектор с собой, не оставляя его, он всегда должен reserve.


Итак, в основном, что вам нужно:

template 
void Append(std::vector& a, const std::vector& b)
{
    a.reserve(a.size() + b.size());
    a.insert(a.end(), b.begin(), b.end());
}

30
задан emesx 11 March 2013 в 15:17
поделиться