我想设计/找到一个C ++ Datastructure / Container,它支持两列数据和对这些数据的CRUD操作。我查看了STL容器,但没有一个支持我的要求(如果我错了,请纠正我)。 我的具体要求如下
支持以下功能
搜索特定项目。
搜索符合条件的商品列表
该列都应支持上述搜索操作。即,我应该能够在两个列上搜索数据。
更新特定项目
我更喜欢搜索操作比添加/删除操作更快。
另外我将在线程之间共享此数据,因此需要支持Mutex(我也可以单独对这些数据实施Mutex Lock。)
现有的STL是否符合我的要求,或者我们是否有其他符合我要求的库或数据结构。
注意:我无法使用Database或SQLite来存储我的数据。
谢谢 问候, 迪内希
答案 0 :(得分:1)
答案 1 :(得分:1)
搜索特定项目。
如果需要单向映射(即快速搜索一列中的值),则应使用map或multimap容器类。但是,标准库中没有双向映射,因此您应该构建自己的(多)映射对或使用其他库,例如boost :: bimap
答案 2 :(得分:1)
您最好的选择是Boost.Bimap,因为当您想要根据任一列进行搜索时,它会让您轻松上手。如果您确定需要更多列,那么Boost.Multi_index可能会更好。 Here is an example!