C++ 如何使用websocketpp::connection\u hdl作为键实现boost::unordered\u映射?

C++ 如何使用websocketpp::connection\u hdl作为键实现boost::unordered\u映射?,c++,key,unordered-map,weak-ptr,websocket++,C++,Key,Unordered Map,Weak Ptr,Websocket++,在我的应用程序中,将s的映射作为映射中的键保存更方便、更符合逻辑,但我发现这可能是潜在的危险,因为它们是弱的\u ptrs 然而,如果弱ptr密钥过期,则boost::无序映射可能不会中断 这是真的吗?如果是这样的话,如何构造一个可以将连接\u hdl作为键保存,以及插入、擦除和查找/计数的连接?此外,需要什么才能在它们之间循环,例如使用for 这目前超出了我的能力范围,所以我不确定我在看什么。boost::unordered_map可能在迭代过程中很慢,因此,我建议您可以将所有websocke

在我的应用程序中,将s的映射作为映射中的键保存更方便、更符合逻辑,但我发现这可能是潜在的危险,因为它们是
弱的\u ptr
s

然而,如果
弱ptr
密钥过期,则
boost::无序映射可能不会中断

这是真的吗?如果是这样的话,如何构造一个可以将
连接\u hdl
作为键保存,以及插入、擦除和查找/计数的连接?此外,需要什么才能在它们之间循环,例如使用
for


这目前超出了我的能力范围,所以我不确定我在看什么。

boost::unordered_map
可能在迭代过程中很慢,因此,我建议您可以将所有
websocketpp::connection_hdl
存储在
std::vector
中。对于映射,您可以使用指针作为键:
boost::unordered\u map

是。或者,如果迭代和查找的O(log(n))时间对您来说合适,则使用std::map。所有stl容器都是您放在其中的。您必须自己从每个容器中删除过期的连接。再次感谢您!这个答案和你的评论是否与此相冲突?这完全超出了我的能力范围,我需要把它做好。提前非常感谢!指针将始终指向某个地址、顺序或哈希值。只需注意删除过期连接的条目。