使用vector的编译错误

#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++的头文件名冲突。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值