C++ 无锁映射或哈希表还是。。。?

C++ 无锁映射或哈希表还是。。。?,c++,multithreading,hashtable,lock-free,C++,Multithreading,Hashtable,Lock Free,多个生产者-一个消费者。生产者写入标记(uint64)值,消费者逐个读取。使用者必须读取具有相同标记的最后一个值 现在我有了简单的无锁队列。因此,使用者必须检查整个队列,以获得具有相同标记的最后一个附加值 我想用hashtable替换queue,并用相同的标记写入新值,而不是旧值。读者应该如何获得它?它应该从哈希表中删除最后一个值,还是我应该减少输入队列以只获得一个带有哈希表缓冲区的标记,或者 也请告诉我PLS C++ LIBS,它具有无锁哈希表实现,COZON BooT。< /P> C++ 1

多个生产者-一个消费者。生产者写入标记(uint64)值,消费者逐个读取。使用者必须读取具有相同标记的最后一个值

现在我有了简单的无锁队列。因此,使用者必须检查整个队列,以获得具有相同标记的最后一个附加值

我想用hashtable替换queue,并用相同的标记写入新值,而不是旧值。读者应该如何获得它?它应该从哈希表中删除最后一个值,还是我应该减少输入队列以只获得一个带有哈希表缓冲区的标记,或者


也请告诉我PLS C++ LIBS,它具有无锁哈希表实现,COZON BooT。< /P> C++ 11有< >代码unQueDeXMAP这是一个哈希表<代码> Boost 没有散列映射,因为STL确实有。正如@EdChum所述,如果您使用的是C++11特性,那么您可以使用

std::unordered_映射
,否则也只有
std::映射
。。这两种方法中的任何一种都适合您的需要,还是有反对它们的具体原因?@txtechhelp我知道boost确实有哈希映射:。它在C++11出现之前就已经存在了。@jsantander,你是对的(尽管请注意这是C++11的
boost
版本
unordered_map
),我更暗指这样一个事实,OP可能想在跳转到额外的库之前看看STL提供了什么,这是SE的无注释编辑策略的一个缺点,谢谢你的提示:)@txtechhelp原因是有多个写入程序,所以我需要无锁映射