我想制作一些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>
),但我有。设置在不同的位置?来源看起来像这样
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>
答案 0 :(得分:2)
您需要的是
#include <set>
而不是
#define <set>
在使用该集之前,请在主函数
之前写下以下行using namespace std;
答案 1 :(得分:0)
通过
#define <set>
我希望你的意思
#include <set>
您还需要以某种方式表明您希望来自set
命名空间的std
。你可以通过在set
前加std::
前缀来引用它,来做到这一点:
set<int> playerlist;
或使用using
声明告诉编译器每当您引用set
时,您的意思是std::set
:
using std::set;
(也可以编写一个全能using namespace std;
声明,表示你总是希望使用std
命名空间中的所有内容,但这通常被认为是不好的做法。我之所以提到它只是因为,尽管是不好的做法,但这很常见,所以你很可能会遇到代码。)