Мне нужно вставить некоторые элементы в std::vector как копии элементов в том же векторе, которые расположены позже вставленного места.
Итак, я написал следующую демонстрацию кода:
Код: Выделить всё
#include
#include
#include
int main()
{
{
std::vector v = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
v.reserve(2*v.size());
// Works just fine on both CLang and MSVC
v.insert(
v.begin() + 3,
v.begin() + 5,
v.end()
);
std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/79217657/is-it-safe-to-insert-range-in-stdvector-if-its-source-it-the-tail-of-the-save[/url]
Мобильная версия