建议使用两列C ++数据结构并支持CRUD操作

时间:2012-07-09 10:49:31

标签: c++ data-structures crud

我想设计/找到一个C ++ Datastructure / Container,它支持两列数据和对这些数据的CRUD操作。我查看了STL容器,但没有一个支持我的要求(如果我错了,请纠正我)。 我的具体要求如下

  1. 两列数据结构。
  2. 支持以下功能

    1. 搜索特定项目。

    2. 搜索符合条件的商品列表

    3. 该列都应支持上述搜索操作。即,我应该能够在两个列上搜索数据。

    4. 更新特定项目

    5. 删除特定项目
    6. 添加新项目
  3. 我更喜欢搜索操作比添加/删除操作更快。

    另外我将在线程之间共享此数据,因此需要支持Mutex(我也可以单独对这些数据实施Mutex Lock。)

    现有的STL是否符合我的要求,或者我们是否有其他符合我要求的库或数据结构。

    注意:我无法使用Database或SQLite来存储我的数据。

    谢谢 问候, 迪内希

3 个答案:

答案 0 :(得分:1)

如果其中一列是唯一的,那么您可以使用Map。否则,定义一个具有两个代表该列的成员变量的类,并将其存储在vector中。有些算法可以帮助您搜索容器。

答案 1 :(得分:1)

  

搜索特定项目。

如果需要单向映射(即快速搜索一列中的值),则应使用map或multimap容器类。但是,标准库中没有双向映射,因此您应该构建自己的(多)映射对或使用其他库,例如boost :: bimap

答案 2 :(得分:1)

您最好的选择是Boost.Bimap,因为当您想要根据任一列进行搜索时,它会让您轻松上手。如果您确定需要更多列,那么Boost.Multi_index可能会更好。 Here is an example