我尝试使用#typedef将类型声明为我自己的自定义名称,以方便使用:
class Solution {
public:
void dfs(vector<vector<char>>& board, int i, int j)
{
using namespace std;
#typedef std::pair<int, int> myStateType;
std::queue<myStateType> q; // error on this line
...
}
};
但是,此行
std::queue<myStateType> q;
上指示的编译错误:未在此范围内声明“ myStateType”
我仍然没有弄清楚这个错误怎么发生的?有任何想法吗?提前致谢!
最佳答案
typedef
是C和C ++编程语言的编译器令牌,而不是MACRO。
typedef std::pair<int,int> myStateType; // don't put # before
std:queue<myStateType> q;
未在此范围内声明“ myStateType”:意味着您的程序不知道类型:myStateType
关于c++ - #typedef导致此范围内未声明“myStateType”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43285994/