c++ - STL 是 C++ 核心的一部分吗?

标签 c++ stl

我有一些令人困惑的真假问题 我希望有人回答他们并为我证明答案,因为我已经进行了搜索

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/

相关文章:

c++ - 如何找到文本文档中最长的单词?

c++ - 从 C++ 调用 C DLL 会出现访问冲突,但使用 DllImport 工作的 C# 项目

c++ - rsa_public_encrypt 返回-1,错误0x0406B07A

c++ - 程序无法启动,因为您的计算机缺少 libgcc_s_dw2-1.dll。简单控制台

c++ - 通过具有 vector 基地址的指针读取 vector 元素时出错

C++ STL : Can arrays be used transparently with STL functions?

c++ - 为什么我没有得到所需程序的输出?

c++ - 如何在 C++ 中使 mysql++ 查询超时

c++ - 是否可以让 C++ 方法在不重载方法的情况下接受 const char* 和 const wchar_t* 作为参数?

c++ - 是否有 C++ 函数来对 std::stack 进行排序?