c++ - c++11 中是否有 Boost.Bimap 替代方案?

标签 c++ stl map c++11 bimap

在 C++0x 中是否有 Boost 的 bimap 的可用替代方案?

我想避免使用 Boost,但完全接受 C++11。如有必要,Boost 的 bimap 的精简版本将适用于我的整个程序(我需要一个常量 bimap 来在枚举和相应的字符串之间切换)。该 map 将是编译时常数,因此即使是两个手动维护的 map 也不是最佳解决方案。

谢谢!

更新:我在 The Code Project 上找到了这个,但似乎许 cocoa 能是一个问题:http://www.codeproject.com/KB/stl/bimap.aspx?fid=12042&df=90&mpp=25&noise=3&sort=Position&view=Quick&fr=151#xx0xx

我只是在寻找一个干净且简单的解决方案(一个头文件/源文件或一些额外的文件,因为两个镜像映射在我的情况下同样适用)。

最佳答案

简短回答:不。

长答案:不。


需要注意的是C++14transparent comparators的支持在 90% 的情况下无需 Boost.Bimap*:当您需要关闭对象的任何给定 属性 时(存储或计算),通常是一个简单的、按位可比的唯一标识符,无论如何都是对象固有的/存在的。使用透明比较器,您可以将对象与任何可能的值进行比较,仅按类型进行区分,只要可以从对象获取/计算所述值而不改变它。

* 猜测,而非统计数据

关于c++ - c++11 中是否有 Boost.Bimap 替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5647311/

相关文章:

java - 将缓存的 Map<String , List> 对象复制到临时 Map<String , List> 对象中

haskell - 您将如何在 Haskell 中使用 foldr 定义映射和过滤器?

c++ - 使用 ={} 语法初始化结构时,幕后发生了什么?

c++ - std::make_shared 作为默认参数不编译

c++ - 在#define 中使用双冒号 (::)

c++ - 加速 std::map 和 boost:unordered_map [] 操作

c++ - std::multimap 真的只是嵌套 vector 吗

c++ - 并行填充 vector ,顺序不重要

hadoop - hadoop节点上的数据如何复制

C++ 二进制文件在 Windows XP 上不起作用