C++ c++;矢量源代码

C++ c++;矢量源代码,c++,stl,std,C++,Stl,Std,我正在尝试获取矢量源代码,以了解标准std或stl矢量是如何实现的 这是为了学习。现在的问题是在哪里可以找到源代码。 即使是其他C++容器的源代码也有帮助。如果不是所有的代码> STD::vector < /COD>源代码应该包含在 标题中。 标准库容器都是类模板,因此,它们的定义及其所有成员函数的定义都包含在各自的头中 注意,任何容器都没有一个真正的实现;每个C++标准库实现都可以自由地实现每个容器,只要它满足容器的要求, 这里是:./p>< p>没有“标准”向量-标准定义行为和接口(以及一些

我正在尝试获取矢量源代码,以了解标准std或stl矢量是如何实现的

这是为了学习。现在的问题是在哪里可以找到源代码。
即使是其他C++容器的源代码也有帮助。

如果不是所有的代码> STD::vector < /COD>源代码应该包含在<代码> <代码>标题中。 标准库容器都是类模板,因此,它们的定义及其所有成员函数的定义都包含在各自的头中


注意,任何容器都没有一个真正的实现;每个C++标准库实现都可以自由地实现每个容器,只要它满足容器的要求,

这里是:./p>< p>没有“标准”向量-标准定义行为和接口(以及一些实现细节,如邻接存储)但是代码是由编译器编写者决定的

您的编译器应该有自己的
头文件,您是否在构建包含路径中检查了这一点?一旦您发现,您还应该在各自的标题中看到其他STL容器。微软Visual C++的列表包括一些专有的,所以请注意下面的样本免责声明:

标题 文件不再在std中 名称空间,但已被移动 进入stdextnamespace。见stdext 有关详细信息,请参阅命名空间

在安装VisualC++快速表2010时,它们在这个文件夹中:

c:\program files\microsoft visual Studio 10.0\vc\include


不同的运行时有不同的实现

但我想这就是您想要的,广泛使用的gcc实现:

它是主头文件,实现在 和


它使用宏使代码以良好的性能运行,适合各种情况,但使其难以阅读,祝您好运。

观看和学习总是很好的。但是我不确定查看像
std::vector
这样复杂的源代码是否是一个好的选择。当然,您可能会学到很多东西,但也可能很容易迷路。许多STL实现将包含大量用于迭代器调试之类的代码-这将很难阅读,并且包含大量与向量的功能不直接相关的代码。可能不是学习的最佳场所。您的链接现在已断开。