开发者社区> 问答> 正文

G++ 编译时出现了奇怪的错误,windows下编译没有?报错

这是两段代码,只差一个空格,却一个编译通过,一个就报了异常,真心求教

map<int, vector<int>> mapNeed;//报错,变量未声明

map<int, vector<int> > mapNeed;//编译通过

运行环境:Centos

编译器:g++

展开
收起
爱吃鱼的程序员 2020-06-09 11:48:58 922 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    map<int,vector<int>>的两个右尖括号(>>),在较低版本的编译器里,被识别为移位运算符,所以将出现编译错误。在较高版本的编译器里,编译器已经足够智能,能够进行正确的识别。

    你的g++的版本应该比较低,或者没有使用  - std= c++ 0x开关。

    遇到这种情况,就老老实实的加个空格。

    语法要求,好好看看C++primer

    引用来自“liuyong051”的评论

    map<int,vector<int>>的两个右尖括号(>>),在较低版本的编译器里,被识别为移位运算符,所以将出现编译错误。在较高版本的编译器里,编译器已经足够智能,能够进行正确的识别。

    你的g++的版本应该比较低,或者没有使用  - std= c++ 0x开关。

    遇到这种情况,就老老实实的加个空格。

    2020-06-09 11:49:16
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
《云服务器运维之Windows篇》 立即下载
TAKING WINDOWS 10 KERNEL 立即下载
ECS运维指南之Windows系统诊断 立即下载