有一段时间我使用Boost的flat_map
作为我的首选关联集合,原因在于他们的文档介绍中引用的原因,以及(最初)它在编译器的std实现之前提供了更新的功能,跨平台也是如此。
现在,我想开始使用string_view
来防止复制字符串,当这些字符串来自较大输入的子字符串时。 string_view
指向较大字符串中的一系列字符,而不必将其复制到新的std::string
实例中。
在寻找要使用的地图时,我记得我过去喜欢的Boost.Container的另一个渐进功能是保形键,你可以使用正确对比的任何东西。存储密钥,而不是转换为实际的密钥类型。
但是现在我在文档中找不到任何提及。我知道std::map
现在可以做到这一点(自C ++ 14以来),但我宁愿将flat_map用于微小的集合。
如果在boost::flat_map::insert
等中不明显,那么多年前我能看到什么才能实现这种灵活性?使用现在使用最新编译器的优秀平面集合是什么?