《STL源码剖析》学习笔记一——Windows下g++编译环境安装与配置

Cygnus 是Windows下的g++编译器,安装后可以直接在根目录include文件夹下看到STL的源码,并且可以直接在源码中加上自己的一些能够帮助理解的代码,很方便。

一、Cygnus  for windows安装

下载地址

下载的可执行文件full.exe直接点开安装,安装后找到bin目录——如D:\Program Files\cygnus\cygwin-b20\H-i586-cygwin32\bin,添加到Windows环境变量path中。


二、Windows下c++代码编译运行

用文本编辑器编写c++代码:

#include "iostream"
using namespace std;
int main()
{
    cout << "Hello World" << endl;
}

打开window命令行cmd,进入代码路径,执行g++编译:



STL源码的路径在:D:\Program Files\cygnus\cygwin-b20\include\g++目录下,通过修改部分内部代码可以大致了解STL容器的工作流程,例如打开g++目录下的stl_vector.h文件,修改vector容器的size函数:

原定义:

size_type size() const { return size_type(end() - begin()); }

手动修改为:

size_type size() const { cout << "size of vector is :" << size_type(end() - begin()) << endl; return size_type(end() - begin()); }

编写代码:

#include "iostream"
#include <vector>
using namespace std;
int main()
{
	vector<int> vec;
	vec.push_back(1);
	cout << vec.size() << endl;
}

编译运行:


从图中可以看出,整个过程vector的size函数应该是被调用了两次,其中一次是push_back生效之前,一次是在之后,具体细节可以参考源代码。

参考:

G++(GNU C++)安装及使用(windows)

《STL源码剖析》

猜你喜欢

转载自blog.csdn.net/guangyacyb/article/details/78671970