Структурированная привязка для 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, intry] и затем использовать entry.first и entry.s. /> или, может быть, предлагает что -то еще, кроме перечисления для этого сценария?

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

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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