哪个C++规范开始支持 std::vector



我想知道哪个C++规范开始支持 std::vector?另外,我们如何检查(通过预处理器宏(C++编译器是否支持此规范?

于 98 C++年推出,至少自 1994 年 9 月 WG21/N0545 以来成为工作草案的一部分

第 23 章 [lib.容器],

  • WG21/N0545:信息系统拟议国际标准草案的工作文件 - 编程语言C++

1994年9月20日的论文(非正式的1994年9月C++工作文件(,特别是[lib.vector]部分,AFAIK是第一份引入(std::(vector的正式文件/草案,以及许多其他熟悉的容器类。

每年更新的C++工作文件最终成为第一个C++ISO标准发布,即ISO/IEC 14882:1998 - 编程语言 - C++,其中包括STL及其最初的容器类集。

第一次提及:1991年11月在达拉斯举行的会议

由于在 1998 年第一个 ISO 发布之前,关于该语言的所有内容都可以被认为是处于草稿/演变阶段,因此容器很可能更早地被讨论和提出。可能上面的章节已经以某种形式出现在WG21/N0100(1992年拟议的美国国家信息系统标准草案的工作文件 - 编程语言(中,但我无法找到此参考的副本。图书馆工作组1992 年 3 月 3 日的 WG21/N0110 报告确实提到了容器部分以及 1991 年已经开始/考虑的工作 [强调我的]:

进度报告 - 1991年11月至1992年3月

[...]

该小组正在做什么

虽然C++的语言部分已经经历了 10 多年的发展和完善,但标准库的开发时间要少得多。模板和例外的可用性(最近才添加到该语言中(对C++库的设计产生了重大影响。[...]

当前关注点

图书馆集团目前的工作重点与 1990 年 7 月西雅图会议以来一直保持原样。1991 年 11 月在达拉斯举行的会议增加了对简单容器类的考虑

[...]

18.5 容器

查看可用的库揭示了一小部分公共类。字符串是最频繁的,并且已经在C++库中(18.4(。数组和位集类次之,并且看起来"容易"指定。

设计方法将使用模板强调具体数据类型。容器类提案将在标准的库部分添加一个新部分

[...]

上次未解决的问题

[...]

18.5 容器

[...]同意允许图书馆工作组对两个新组件进行规范。[...]

位集组件 [...]。Array 组件将描述自描述数组,这些数组避免了与语言中定义的数组派生类型相关的一些问题。

[...]

第一次提到"数组[STL容器]组件">的工作,后来(分支到(DynArray组件(见下文(最终成为std::vector

WG21/N0083:C++中的通用动态数组

论文

  • WG21/N0083: 通用动态数组

从1992年1月4日起,提出了一个名为DynArray通用动态数组类的提案,其替代名称提案为vector

C++中的通用动态数组

[...]

2. 泛型动态数组类的建议

[...]选择此类的名称"DynArray"是因为"array"是C++中的内置类型,替代的"向量">可能预期是一个数学类(并且具有不同的成员函数(。[...]

std::vector将与 C++98 标准一起使用。 也许它是早些时候添加的。

这个答案是基于那个网站。

Stl 于 1998 年在 c++98 版本中添加

所有 C++ 版本说明

每个 C++ 版本都添加了哪些新功能

最新更新