【问题标题】:Which STL containers are main memory data structures? [closed]哪些 STL 容器是主内存数据结构? [关闭]
【发布时间】:2017-12-22 16:14:44
【问题描述】:

我遇到了术语“主存储器”数据结构。例如 herehereherehere。谷歌搜索并没有给我一个明确的答案,这实际上意味着什么。我得到了一些参考,这意味着用于存储在持久内存(即硬盘)中的数据结构。如果是这样,那么正如我所读到的,二叉树用于在硬盘上存储数据。如果是这样,那么使用二叉树的 std::map 将是主存数据结构的候选者之一。还有哪些例子?

【问题讨论】:

  • 操作系统通常使用没有 STL 容器的 C 和 ASM 开发。 主内存数据结构的含义有点不清楚。
  • “我猜“主存”数据结构这个词的意思是……”你为什么这么认为?
  • 这是来自谷歌搜索“主内存”数据结构。对于所谓的“主存”数据结构,我找不到明确的答案。
  • 结构就是结构。如果你愿意,你可以在便利贴上存储一棵二叉树,或者把它编码成一段你可以吹口哨的音乐。
  • 那么 XY 问题 - 你从哪里得到术语 “主内存数据结构” 以及为什么需要定义它?

标签: c++ data-structures stl


【解决方案1】:

首先你对“主存”的理解是错误的,主存是指系统内存,硬盘是辅助存储。还有专门的片上缓存,程序通常很少或根本无法控制。

话虽如此,所有 STL 容器都仅限于内存托管,但取决于操作系统,这可能包括将部分从主内存交换到磁盘作为虚拟内存的一部分,但是,程序也有很少或没有控制权。而且这种磁盘备份只在程序处于活动状态时才会持续,在终止后不会持久。

虽然 b 树是持久存储到磁盘支持存储的理想选择,但通常的二叉树不是。在这种情况下,b-tree 和二叉树不是一回事。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-19
    • 1970-01-01
    • 2020-01-25
    • 1970-01-01
    • 2011-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多