如何使用websockettp::connection_hdl作为密钥来实现boost::unorderede_map

How to implement a boost::unordered_map with websocketpp::connection_hdl as key?

本文关键字:实现 boost unorderede 密钥 map websockettp 何使用 connection hdl      更新时间:2023-10-16

对于我的应用程序来说,将websocketpp::connection_hdls的映射作为映射中的键更方便、更合乎逻辑,但我发现这可能是潜在的危险,因为它们是weak_ptrs。

然而,有人声称,如果weak_ptr密钥过期,则boost::unordered_map可能不会断开。

这是真的吗?如果是这样的话,如何构建一个将connection_hdl作为密钥以及插入、擦除和查找/计数的密钥?此外,需要什么才能循环通过它们,例如使用for

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

boost::unordered_map的迭代速度可能较慢,因此,我建议您可以将所有websocketpp::connection_hdl存储在std::vector中。对于地图,您可以使用指针作为键:boost::unordered_map<websocketpp::connection_hdl*, X>