【问题标题】:Data Structure to use instead of hash_map使用数据结构代替 hash_map
【发布时间】:2011-10-03 23:01:01
【问题描述】:
我想创建一个包含三个宽字符数组的数组,其中一个是键。
"LPWCH,LPWCH,LPWCH" 无法使用大于/小于符号,因为它认为它是一个标签
Hash_map 只允许我使用一对。 wKey 和与之关联的元素。还有其他数据结构可以让我使用它吗?
这个集合几乎同时被不同的线程更新。这就是为什么我不想使用类或其他结构来定义剩余的两个宽字符数组的原因。
【问题讨论】:
标签:
multithreading
visual-c++
data-structures
hashmap
wchar
【解决方案1】:
您可以使用LPWCH 作为键,std::pair<LPWCH, LPWCH> 作为元素。
【解决方案2】:
使用任何 LP-typedef 都不好。你只会比较点,而不是字符串。
LPWCH 只不过是一个WCHAR*,可以向下钻取到void*。当您比较两个指针时,您是在比较它们指向的位置,而不是它们指向的什么。
您要么需要将另一个比较器附加到您的 map/hash_map,要么使用实际的字符串数据类型(如 std::string、CString)