在 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++14对transparent comparators的支持在 90% 的情况下无需 Boost.Bimap*:当您需要关闭对象的任何给定 属性 时(存储或计算),通常是一个简单的、按位可比的唯一标识符,无论如何都是对象固有的/存在的。使用透明比较器,您可以将对象与任何可能的值进行比较,仅按类型进行区分,只要可以从对象获取/计算所述值而不改变它。
* 猜测,而非统计数据
关于c++ - c++11 中是否有 Boost.Bimap 替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5647311/