Структура данных для использования вместо hash_map

Я хочу создать массив, содержащий три массива широких символов, чтобы один из них был ключом.

"LPWCH, LPWCH, LPWCH" не смог использовать символы больше / меньше чем, так как считает, что это тег

Hash_map позволяет мне использовать только пару. wKey и связанный с ним элемент. Есть ли другая структура данных, которая позволяет мне использовать это?

Этот набор будет обновляться разными потоками практически одновременно. Вот почему я не хочу использовать класс или другую структуру для определения оставшихся двух массивов широких символов.

2 ответа

Решение

Ты можешь использовать LPWCH в качестве ключа и std::pair<LPWCH, LPWCH> как элемент.

Использование любого из LP-typedefs не хорошо. Вы бы сравнивали только точки, а не строки.LPWCH это ничего, кроме WCHAR* который можно сверлить до void*, Когда вы сравниваете два указателя, вы сравниваете, куда они указывают, а не то, на что они указывают.

Вам нужно либо подключить другой компаратор к вашей карте /hash_map, либо использовать фактический тип данных строки (например, std::string, CString)

Другие вопросы по тегам