关于具有两列并支持CRUD操作的C++数据结构的建议

suggestion for a C++ Datastructure with Two Column and supporting CRUD Operation

本文关键字:操作 CRUD C++ 数据结构 支持 于具 两列      更新时间:2023-10-16

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

  1. 具有两列的数据结构
  2. 支持以下功能

    1. 搜索特定项目。

    2. 搜索与标准匹配的项目列表

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

    4. 更新特定项目

    5. 删除特定项目
    6. 添加新项目

我更喜欢搜索操作比添加/删除操作更快。

此外,我将在线程之间共享这些数据,因此需要支持互斥(我也可以单独对这些数据实现互斥锁定)

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

注意:我不能使用数据库或SQLite来存储我的数据。

谢谢当做Dinesh

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

搜索特定项目。

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

您最好的选择是Boost.Bimap,因为当您想基于任一列进行搜索时,它会让您变得更容易。如果您决定需要更多的列,那么Boost.Multi_index可能会更好。下面是一个例子!