今天将程序在VS2015和g++ 5.4.0下运行,发现vector越界 VS会报错,而g++正常输出。故而查看了源码,看个究竟。
例:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector <int> a;
a.push_back(66);
a.push_back(88);
cout << a[0] << endl;
cout << a[1] << endl;
cout << a[2] << endl; //发生越界。
return 0;
}
输出:
VS2015下:
g++ 5.4.0下:
分析:
VS2015的vector实现:
g++ 5.4.0的vector实现: