Я использую вектор.Для моих целей обычно требуется, чтобы он имел (n) элементов, которые будут доступны и изменены только с помощью оператора index [].
В определенный момент мой алгоритм решит, что ему нужно больше места, и чтонужно увеличить этот вектор, чтобы сказать ... в 2 раза больше его размера.
Есть ли способ, которым я могу удвоить размер и инициализировать все новое пространство в векторном значении по умолчанию с типом элемента вектора?
По сути, вместо того, чтобы вручную вставлять элементы для заполнения емкости после того, как она удваивается, я бы хотел, чтобы вся ее емкость была полностью заполнена и инициализировалась по умолчанию после увеличения.Насколько я знаю, резерв просто резервирует пространство (и не инициализирует элементы в нем, поэтому, хотя я мог бы использовать это и вставку цикла, я надеялся, что есть ... более забавный способ).
Итак, я хочу получить эффект, аналогичный созданию нового вектора с помощью этого конструктора:
std::vector<MyType> vec(2*oldvec.size(), MyType());
, за исключением того, что я хотел бы сохранить элементы, которые уже были в векторе, до того, как он удвоился в размере.