错误的 STL 标头

发布于 2024-12-19 05:08:49 字数 763 浏览 0 评论 0原文

我想制作一些 STL 集,但是当我这样做时,它告诉我

error C2143: syntax error : missing ';' before '<'
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C2238: unexpected token(s) preceding ';'

,这意味着我没有包含正确的标头定义 (#define),但我已经包含了。集合是否位于不同的位置?源代码看起来像这样

set<int> playerlist;

头文件是...

#include <iostream>

//#include "winsock2.h"
#include "Ws2tcpip.h"
#include <list>

//#include <windows.h>
#include <process.h>
#include <stdio.h>
#include <string>
#include <fstream>
#include <map>

#pragma comment(lib, "ws2_32.lib")

using namespace std;

#include <set>

I want to make some STL sets but when I do it tells me

error C2143: syntax error : missing ';' before '<'
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C2238: unexpected token(s) preceding ';'

Meaning I have not included the proper header define (#define <set>) but I have. Are sets just under a different location? The source looks like this

set<int> playerlist;

The header files are...

#include <iostream>

//#include "winsock2.h"
#include "Ws2tcpip.h"
#include <list>

//#include <windows.h>
#include <process.h>
#include <stdio.h>
#include <string>
#include <fstream>
#include <map>

#pragma comment(lib, "ws2_32.lib")

using namespace std;

#include <set>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

倾听心声的旋律 2024-12-26 05:08:49

您需要的是

#include <set>

而不是

#define <set>

在使用该集合之前在 main 函数之前写入以下行

using namespace std;

What you need is

#include <set>

and not

#define <set>

also before using the set write the following line before your main function

using namespace std;
时光礼记 2024-12-26 05:08:49

#define <set>

希望你的意思是

#include <set>

您还需要以某种方式表明您想要来自 std 命名空间的 set。您可以通过在引用 set 的所有地方添加 std:: 前缀来实现这一点:

set<int> playerlist;

或者使用 using 声明告诉编译器每当您引用 set 时,您的意思是 std::set:(

using std::set;

也可以编写一个包罗万象的 using namespace std; 声明这说明你总是想使用来自std 命名空间,但这通常被认为是不好的做法,我提到它只是因为,尽管这是不好的做法,但它相当常见,所以您很可能会遇到这样做的代码。)

By

#define <set>

I hope you mean

#include <set>

?

You also need to indicate somehow that you want the set from the std namespace. You can do that either by prefixing set with std:: everywhere that you refer to it:

set<int> playerlist;

or by using a using declaration to tell the compiler that whenever you refer to set, you mean std::set:

using std::set;

(It's also possible to write a catch-all using namespace std; declaration that says that you always want to use everything from the std namespace, but that's normally considered bad practice. I mention it only because, despite being bad practice, it's fairly common, so you may well come across code that does it.)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文