Вопрос новичка, но я искал это и не мог найти что-то, что четко решало бы мою проблему - извинения, если это очевидно.
Я определил карту, которая выглядит так:
map<int, string> testmap = {
{ 0, "a" },
{ 1, "b" },
{ 2, "c" }
}
Однако мне нужно извлечь значение из testmap
, используя значение uint64_t
, предоставленное другой функцией.
Когда я делаю testmap[my_uint64_t_value]
, он возвращает пустую строку, так что я думаю, что это потому, чтоон добавляет my_uint64_t_value
как ключ и устанавливает значение в NULL
.
Это то же самое, если я устанавливаю тип карты в <uint64_t, string>
,по крайней мере, так, как я сейчас определяю свои ключи.
Однако есть ли способ, которым я либо:
- преобразую значение
uint64_t
в обычное int
- определить карту как
<uint64_t, string>
и иметь возможность определить мои ключи как 'правильный' тип?
Кажется, что int
преобразование типов не так распространено,это то, что следует избегать?