首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是关联容器?

什么是关联容器?
EN

Stack Overflow用户
提问于 2013-11-20 13:40:37
回答 2查看 9.1K关注 0票数 4

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

我可以在我的论文中称它为关联容器吗?

维基百科包含关联容器仅在C++上下文中的定义。关联容器的概念是C++吗?

相联阵列上的条目似乎更好。它用4个操作定义了关联数组

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

不幸的是,我找不到很好的参考这个定义。你知道我能引用的相关消息来源吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-20 13:59:21

关联容器是不一定用顺序整数索引的容器,这些整数以语言的基开始(在大多数基于C的语言中为0,对于其他一些语言为1)。如果您的论文中的数据结构满足这一要求,那么它就是一个关联容器。

一般情况下,不要把维基百科作为学术论文的来源。

票数 10
EN

Stack Overflow用户

发布于 2013-11-20 14:20:40

要查看C++中关联容器的真实示例,请查看std::setstd::map。他们是很好的榜样,值得学习。通常,对于关联容器,存在一个键和一个值,并且键是唯一的。一些刚接触数据结构的人常常想知道std::set是如何关联的,因为它只有一件事!在std::set中,键和值是相同的。在地图中,键可以与值不同。

std::set (键是值):

代码语言:javascript
复制
 a    
 b    
 c

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

代码语言:javascript
复制
 1 -> a    
 2 -> b    
 3 -> c    

std::map也可以像std::set一样使用,尽管在std::set可用时这样做是没有意义的,如果您的数据是这样的,那么只需使用std::set即可。

代码语言:javascript
复制
 a -> a
 b -> b
 c -> c

因此,如果您想实现您自己的关联容器,您可以只实现一个映射,当有人想要使用它作为一个集合时,只需使键相等于值。事实上,我相信仅执行映射和它们可以用作地图或集合。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20097551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档