Структурированная привязка для std :: views :: перечисление std :: mapC++

Программы на C++. Форум разработчиков
Anonymous
Структурированная привязка для std :: views :: перечисление std :: map

Сообщение Anonymous »

Я пытаюсь сделать что-то вроде этого: < /p>

Код: Выделить всё

const std::map histogram{
{'A', 2},
{'D', 1},
{'M', 1},
};

for (const auto& [index, key, value] : std::views::enumerate(histogram))
{
// ...
}
< /code>
Но он не компилируется (компилятор Explorer) Ошибка отчетности: < /p>
:13:21: error: 3 names provided for structured binding
13 |     for (const auto& [index, key, value] : std::views::enumerate(histogram))
|                     ^~~~~~~~~~~~~~~~~~~
:13:21: note: while 'const std::tuple' decomposes into 2 elements
Наивное использование [index, [key, value]] Конечно, не сработало тоже ...
Есть ли какой -то другой трюк, который я отсутствует, или в этом случае я просто не могу «распаковывать» элемент карты и вместо этого должен сохранить его как [index, intepric] , а затем использовать запись. Первый и запись. Второй ?
или, может быть, предлагает что -то другое, кроме перечисленного для этого сценария?

Подробнее здесь: https://stackoverflow.com/questions/797 ... -of-stdmap

Вернуться в «C++»