#include <iostream.h>
#include <vector>
using namespace std; //A
void main()
{
vector<int> coll;
for(int i=1;i<=6;++i)
coll.push_back(i);
for(int j=0;j<coll.size();++j)
cout<<coll[j]<<" ";
cout<<endl;
}
上面是正确的,但是如果将A句去掉后,就有6个错误:
Compiling...
vector.cpp
D:/C++/vector/vector.cpp(6) : error C2065: 'vector' : undeclared identifier
D:/C++/vector/vector.cpp(6) : error C2062: type 'int' unexpected
D:/C++/vector/vector.cpp(8) : error C2065: 'coll' : undeclared identifier
D:/C++/vector/vector.cpp(8) : error C2228: left of '.push_back' must have class/struct/union type
D:/C++/vector/vector.cpp(9) : error C2228: left of '.size' must have class/struct/union type
D:/C++/vector/vector.cpp(10) : error C2109: subscript requires array or pointer type
Error executing cl.exe.
vector.obj - 6 error(s), 0 warning(s)
这是为什么?而且在#include<vector>时,不能写成#include<vector.h>,否则也将出错!
解答:
标准C++中引入了命名空间,也就是namespace,标准库(也就是没有.h后缀的头文件)中的函数和类都是放在std这个命名空间里的,如果你要用,就必须引入std这个namespace,那么using namespace std这句就是起的这个作用。至于为什么不能#include <vector.h>,那是因为根本就没有vector.h这样一个文件。vector是标准C++中的一个容器类,如前所说,标准C++的头文件都是不带.h后缀的,这是为了避免和原来的C以及标准化以前的C++的头文件名冲突。