c ++矢量源代码

vrb*_*lgi 8 c++ stl std

我试图获取矢量源代码,看看如何实现标准的std或stl向量.

这是出于学习目的.现在问题是我在哪里可以找到源代码.甚至其他C++容器的源代码也很有帮助.

Ste*_*end 10

没有"标准"向量 - 标准定义了行为和接口(以及一些实现细节,例如连续存储),但代码是编译器编写者要确定的问题.

您的编译器应该有自己的<vector>头文件,您是否在构建包含路径上检查了这个?一旦发现您还应该在各自的标题中看到其他STL容器.Microsoft Visual C++列表在这里,包括一些专有的,所以请注意以下示例免责声明:

在Visual C++ .NET 2003中,<hash_map><hash_set>头文件的成员不再位于std命名空间中,而是已移动到stdext命名空间中.有关更多信息,请参见stdext命名空间.

在我安装的Visual C++ Express 2010上,它们位于以下文件夹中:

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


小智 6

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

但我想这就是你想要的,广泛使用的gcc实现:https: //github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/vector

它是主头文件,实现位于 https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/bits/stl_vector.hhttps:// github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/bits/stl_bvector.h

它使用MACRO使代码运行良好,适应各种情况,但难以阅读,祝你好运.