如何使用websockettp::connection_hdl作为密钥来实现boost::unorderede_map
How to implement a boost::unordered_map with websocketpp::connection_hdl as key?
对于我的应用程序来说,将websocketpp::connection_hdl
s的映射作为映射中的键更方便、更合乎逻辑,但我发现这可能是潜在的危险,因为它们是weak_ptr
s。
然而,有人声称,如果weak_ptr
密钥过期,则boost::unordered_map
可能不会断开。
这是真的吗?如果是这样的话,如何构建一个将connection_hdl
作为密钥以及插入、擦除和查找/计数的密钥?此外,需要什么才能循环通过它们,例如使用for
?
这目前超出了我的技能范围,所以我不确定我在看什么。
boost::unordered_map
的迭代速度可能较慢,因此,我建议您可以将所有websocketpp::connection_hdl
存储在std::vector
中。对于地图,您可以使用指针作为键:boost::unordered_map<websocketpp::connection_hdl*, X>
相关文章:
- 任何用于 boost::p roperty 树的标准库实现
- 如何使用 Boost 库实现 SortedVector API?
- 使用 Boost HOF 实现 STL 漂亮打印
- 如何实现 Boost.Hana 结构的相等比较运算符?
- 实现Eigen's块或Boost's的项目方法
- 编译用于Sony NMOS实现的C++boost库
- 如何在 boost::msm 中实现可以访问状态机 (SM) 的后端/前端的"BaseState"
- boost::future::那它是如何实现的?
- 如何在 Boost/C++ 实现中控制线程池
- 如何使用 Boost.Asio 正确实现异步/等待语法
- 在 Windows 中使用 boost::asio 实现最佳缓冲区大小
- 如何在 Boost 库中实现网络
- g++-4.4(不在 C++11/14 中)通过 boost::shared_mutex 实现多读取器单编写器是否会影响
- 使用 boost::asio 时是否需要实现阻塞?
- 使用boost :: Beast进行CPU重的REST API,我是否应该使用异步或同步方式来实现它们以期望延迟
- 为什么这种类型的擦除实现(简化的 boost:any)会出现分段错误
- 实现Boost范围适配器REVERSED_IF
- 如何实现 boost::variant 派生类
- 是否可以通过thread_local实现boost::thread_specific_ptr
- 如何使用websockettp::connection_hdl作为密钥来实现boost::unorderede_map