我有一些令人困惑的真假问题 我希望有人回答他们并为我证明答案,因为我已经进行了搜索
1 - STL是c++编程语言核心的一部分
2 - std::string 是 STL 的一部分 (我猜是 T)
3 - 迭代器的一个目的是连接容器和算法(我猜是T)
4 - 列表的元素按顺序存储在内存中。 (我猜 F)
5 - vector 的元素按顺序存储在内存中。 (我猜 F)
最佳答案
(1) 和 (2) 都取决于您的定义。 “STL”在技术上不是标准 C++ 的一部分,但其中足够大的部分被改编成名称沿用的原始标准。但是,是的,通常被称为 STL 的模板化容器是官方标准 C++ 库的一部分。 “核心”可能有点牵强;编译器实际上可以将它们排除在独立实现之外,但您几乎永远不会发现自己在为独立实现编写代码,因此区别并不重要。
(3) 它们还有其他用途吗? 是的,这是一个目的。正如 Steve Jessop 在下面指出的那样,它们还将诸如流之类的东西连接到算法,这些东西可以在实际上不是容器的情况下进行迭代。
(4) 你指的是 std::list
吗?那你是对的。除非你想玩语义;它们按顺序存储,但可能不连续。
(5) 在 98 年发布的原始标准中,这可能是一个问题。在 '03 的修改标准中,这被更改为是。在这两种情况下,也可以应用 (4) 中的语义参数
关于c++ - STL 是 C++ 核心的一部分吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6314830/