我试图获取向量源代码,以了解标准 std 或 stl 向量的实现方式。
这是为了学习目的。现在的问题是在哪里可以找到源代码。 其他C ++容器的源代码也有帮助。
这是为了学习目的。现在的问题是在哪里可以找到源代码。 其他C ++容器的源代码也有帮助。
并没有“标准”向量——标准定义了行为和接口(以及一些实现细节,如连续存储),但是代码是由编译器编写者决定的。
你的编译器应该有自己的<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
std::vector
的源代码应该包含在 <vector>
头文件中。
std::vector
这样复杂的东西的源代码是否是个好选择。当然,你可能会学到很多,但也很容易迷失方向。 - ereOn