Структура данных для использования вместо hash_map
Я хочу создать массив, содержащий три массива широких символов, чтобы один из них был ключом.
"LPWCH, LPWCH, LPWCH" не смог использовать символы больше / меньше чем, так как считает, что это тег
Hash_map позволяет мне использовать только пару. wKey и связанный с ним элемент. Есть ли другая структура данных, которая позволяет мне использовать это?
Этот набор будет обновляться разными потоками практически одновременно. Вот почему я не хочу использовать класс или другую структуру для определения оставшихся двух массивов широких символов.
2 ответа
Ты можешь использовать LPWCH
в качестве ключа и std::pair<LPWCH, LPWCH>
как элемент.
Использование любого из LP-typedefs не хорошо. Вы бы сравнивали только точки, а не строки.LPWCH
это ничего, кроме WCHAR*
который можно сверлить до void*
, Когда вы сравниваете два указателя, вы сравниваете, куда они указывают, а не то, на что они указывают.
Вам нужно либо подключить другой компаратор к вашей карте /hash_map, либо использовать фактический тип данных строки (например, std::string
, CString
)