要使用的数据结构而不是hash_map

时间:2011-07-12 19:58:13

标签: multithreading visual-c++ data-structures hashmap wchar

我想创建一个包含三个宽字符数组的数组,以便其中一个是关键字。

“LPWCH,LPWCH,LPWCH”无法使用大于/小于符号,因为它认为它是一个标记

Hash_map只允许我使用一对。 wKey和与之相关的元素。是否有其他数据结构可以让我使用它?

这个集合几乎会同时由不同的线程更新。这就是为什么我不想使用类或其他结构来定义剩余的两个宽字符数组的原因。

2 个答案:

答案 0 :(得分:2)

您可以使用LPWCH作为关键字,std::pair<LPWCH, LPWCH>作为元素。

答案 1 :(得分:1)

使用任何LP-typedef都不好。你只会比较点,而不是字符串。 LPWCH只是WCHAR*,可以追溯到void*。比较两个指针时,您要比较它们指向的位置,而不是它们所指向的

您需要将另一个比较器附加到map / hash_map,或使用实际的字符串数据类型(如std::stringCString