什么是关联容器
What is an associative container?
我正在写一篇关于某个新数据结构的论文。该结构保持(key, value)
对,并且支持key
的快速查找。
我可以在论文中将其称为关联容器吗
维基百科只在C++的上下文中包含了关联容器的定义。关联容器的概念是C++的东西吗?
关联数组上的条目似乎更好。它定义了关联数组的4个操作:
- 向集合添加对
- 从集合中删除对
- 现有对数值的修改
- 查找与特定键关联的值
不幸的是,我找不到关于这个定义的很好的参考文献。你知道我可以引用的任何相关来源吗?
关联容器是指不一定用以该语言的基开始的顺序整数索引的任何容器(在大多数基于C的语言中为0,在其他一些语言中为1)。如果论文中的数据结构满足这一要求,那么它就是一个关联容器。
一般来说,不要将维基百科作为学术论文的来源。
要查看C++中关联容器的真实示例,请查看std::set
和std::map
。他们是值得学习的好榜样。通常,对于关联容器,有一个键和一个值,并且该键是唯一的。一些刚接触数据结构的人经常想知道std::set
是如何关联的,因为它只有一件事!在std::set
中,键和值是相同的。在地图中,关键点可以与值不同。
std::set
(关键是数值):
a
b
c
std::map
(密钥和值可能不同):
1 -> a
2 -> b
3 -> c
std::map
也可以像std::set
一样使用,尽管当std::set
可用时这样做毫无意义,如果您的数据看起来像这样,那么只需使用std::set
:
a -> a
b -> b
c -> c
所以要知道,如果你想实现你自己的关联容器,你可以只实现一个映射,当有人想把它用作一个集时,只需让键等于值。事实上,我相信Go只实现了映射,它们可以用作映射或集合。
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- 警告处理为错误这里有什么问题
- 什么时候调用组成单元对象的析构函数
- #定义c-预处理器常量..我做错了什么
- 努力将整数转换为链表。不知道我在这里做错了什么
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 什么时候在C++中返回常量引用是个好主意
- 当在同一名称空间中有两个具有相同签名的函数时,会发生什么
- C++避免重复声明的语法是什么
- c++库的公共头文件中应该包含什么
- 什么是关联容器?必须更改此容器的QList
- 什么是关联容器
- 什么是用于对数据进行分组的最佳关联容器
- 我对编译时关联容器的选择是什么
- 这个号码和我的typeid有什么关联
- 销毁对象和释放关联内存有什么区别
- 唯一关联哈希映射容器与关联哈希映射集装箱的属性是什么
- 将互斥锁与其数据相关联的正确方法是什么?
- 关联数组的含义是什么?
- 键值关联容器中的顺序是有用的用例是什么