У меня есть std::vector. Я назначаю этот вектор как
vec.assign(20000, 0);
Теперь у меня есть дополнительный массив, который я хочу вставить в вектор. Но НЕ так же, как вставка, больше заменяет элементы в векторе.
uint8_t a[] = {1,2,3,4,5,6,7,8};
Переместите этот массив в вектор в позиции x - x+8 без выделения новой памяти.
То, что я пробовал и работает, конечно
vec.insert(start, a, a+8);
Но там я выделяю новую память и меняется размер вектора, чего не должно происходить. Да, я мог бы удалить записи, которых слишком много, но проблема еще в том, что я выделяю больше памяти. Разве нет возможности просто заменить массив содержимым вектора? Что-то вроде этого:
vec.replace(start, a, a+8);
Я хотел избежать замены каждого элемента, потому что боюсь, что это может занять слишком много времени.
Что вы думаете? Есть ли способ сделать это? У вас тоже была такая проблема раньше? Как ты это починил?