【发布时间】:2013-04-07 15:59:40
【问题描述】:
根据以下链接 - C++ 的 STL 中的 http://www.cplusplus.com/reference/set/set/ 集通常实现为二叉搜索树,我能够在诸如整数或字符集或浮点数或字符串集等情况下衡量数据类型的行为在这些情况下,很容易看到 BST 排序被强加于集合元素,但考虑到集合的二叉搜索树数据结构实现,我无法想象以下数据类型是如何使用二叉搜索树实现的:
-
set<vector<int>>或set<vector<string>>或set<vector<double>>或set<list<int>> set<map<int, int>>set<stack<int>>
或者对于许多其他数据类型,如何为这些类型分配内存以及如何维护排序。
此外,我无法弄清楚以下内容,每当将新向量添加到集合中时,集合数据类型是否会在内部检查集合中的所有向量的相似性或所有映射的相似性,这些是我我无法弄清楚。如果有人能帮我将这些概念形象化,那就太好了。
提前致谢:)
【问题讨论】:
-
内存分配相同(例如,
new int是new vector<double>),排序也相同(使用operator<)(例如,here's a link 对某些vector的比较运算符)。
标签: c++ algorithm data-structures stl