什么是关联容器?

Mar*_*dik 3 c++ associative-array data-structures

我正在写一篇关于某个新数据结构的论文.这种结构保持(key, value)成对并支持快速查找key.

我可以在论文中将其称为关联容器吗?

Wikipedia 仅在C++的上下文中包含关联容器的定义.关联容器的概念是C++的东西吗?

关联数组上的条目似乎更好.它根据4个操作定义关联数组:

  1. 添加对集合
  2. 从集合中删除对
  3. 修改现有对的值
  4. 查找与特定键关联的值

不幸的是,我找不到很好的参考这个定义.您知道我可以引用的任何相关来源吗?

小智 9

要查看C++中关联容器的真实示例,请查看std::setstd::map.他们是非常好的例子.通常,对于关联容器,有一个键和一个值,键是唯一的.一些不熟悉数据结构的人常常想知道如何std::set关联,因为它只有一件事!在a中std::set,键和值是相同的.在地图中,键可以与值不同.

std::set (关键是价值):

 a    
 b    
 c
Run Code Online (Sandbox Code Playgroud)

std::map (关键和价值可能不同):

 1 -> a    
 2 -> b    
 3 -> c    
Run Code Online (Sandbox Code Playgroud)

A std::map也可以像a一样使用std::set虽然在std::set可用时执行此操作没有任何意义,如果您的数据看起来像这样,那么只需使用std::set:

 a -> a
 b -> b
 c -> c
Run Code Online (Sandbox Code Playgroud)

所以要知道,如果你想实现自己的关联容器,你可以只实现一个映射,当有人想把它当作一个集合时,只需使键等于该值即可.事实上,我相信Go只实现了地图,它们可以用作地图或集合.


Zac*_*and 8

关联容器是任何不必使用以语言基础开头的顺序整数索引的容器(大多数基于C的语言为0,其他语言为1).如果论文中的数据结构符合该要求,则它是一个关联容器.

作为一般规则,不要使用维基百科作为学术论文的来源.

  • `作为一般规则,不要使用维基百科作为学术论文的来源.是的,使用维基百科引用的来源. (6认同)