Структура данных для использования вместо hash_map - PullRequest
1 голос
/ 12 июля 2011

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

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

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

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

Ответы [ 2 ]

2 голосов
/ 13 июля 2011

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

1 голос
/ 13 июля 2011

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

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

...