Вы уже делаете это.
Когда вы пишете cmap[2]
, и этот элемент не существует, он создается и создается по умолчанию.
Таким образом, cmap[2]
будет пустым. Тогда вы можете .push_back
к нему, когда захотите.
Поскольку этот процесс также вызван cmap[2]
в cmap[2].push_back(..)
, вы на самом деле не нужны первоначальная «пустую» инициализация, если не какая-то потребность в проекте для ключа существовать на карте с самого начала (в этом случае , справедливо).
Если вы не хотите, пустой список, чтобы быть значение, но для там нет никакого значения, я думаю, что это глупо, но у вас есть несколько вариантов:
- Не добавить ключ, либо
(пусть недостаток ключа означает недостаток значения);
- магазин
std::unique_ptr<std::list<char>>
и начать с nullptr
(ЮК; динамическое размещение без уважительной причины; нет! Спасибо);
- магазин
std::optional<std::list<char>>
и начать с cmap[2] = std::none
(когда Boost.Optional
делает это в C++, который происходит, но медленно).
And & hellip; это оно.
В чем проблема с тем, что у вас уже есть? Выглядит хорошо для меня. –