奇怪的编译错误:ISO C++禁止声明“set”;没有类型
我在代码中使用 set ,如下所示:
#include <set>
set<int> followers; //line 36
当我用 g++ 编译代码时,它会打印以下错误消息:
myCode.cpp:36: error: ISO C++ forbids declaration of ‘set’ with no type
myCode.cpp:36: error: expected ‘;’ before ‘<’ token
我在这里做错了什么?
Possible Duplicate:
Help with error: ISO C++ forbids declaration of 'vector' with no type
I'm using set in my code as follows:
#include <set>
set<int> followers; //line 36
When i compile my code with g++, it prints the following error message:
myCode.cpp:36: error: ISO C++ forbids declaration of ‘set’ with no type
myCode.cpp:36: error: expected ‘;’ before ‘<’ token
What am i doing wrong here?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您忘记指定命名空间:
std::set;关注者;
。到底发生了什么:因为你没有指定命名空间,编译器遇到一个未知符号
set
并且因为它是第一次出现,所以它决定它是一个声明:在 C 中,可以声明int
变量而不指定类型。 C++ 明确禁止该类型的声明,因此会出现错误。You forgot to specify namespace:
std::set<int> followers;
.What exactly happens is the following: since you didn't specified namespace compiler encounters an unknown symbol
set
and since it is it's first occurence it decides that it is a declaration: in C one could declareint
variables without specifying type. C++ explicitly forbids that types of declarations, hence the error.尝试使用
using namespace std
或者只是使用std::set
Try putting
using namespace std
or just you can usestd::set<int>
或者您可以只导入设置标识符
然后
Or you can just import set identifier by
and then