如何修复可视化工作室中的"C2061语法错误标识符"堆栈?
How to fix 'C2061 syntax error identifier 'stack'' in visual studio?
我在代码中使用堆栈,它显示了此错误。其他问题说我有循环依赖性,但我只有1个标题文件
//function.h
#pragma once
void dfs(int start, int goal, bool visited[], int **matrix, int size,
bool &found, stack<int>& path);
//function.cpp
#include "function.h"
#include <iostream>
#include <stack>
using namespace std;
void dfs(int start, int goal, bool visited[], int **matrix, int size,
bool &found, stack<int>& path)
{
visited[start] = true;
cout<<start<<" ";
path.push(start);
if (start == goal)
found = true;
for (int k = 0; k < size; k++)
{
if (visited[k] == false && matrix[start][k] && found == false )
dfs(k,goal,visited,matrix,size,found,path);
path.pop();
}
}
//main.cpp
#include "function.h"
#include <iostream>
#include <fstream>
#include <stack>
using namespace std;
void main()
{
stack<int> path;
for(int i=0; i<N; i++)
visit[i] = false; //init visit
for(int i = 0; i < N; ++i)
matrix[i] = new int[N]; // build rows
for(int i = 0; i < N; ++i)
{
for(int j = 0; j < N; ++j)
{
fin>>matrix[i][j];
}
}
dfs(start, end, visit, matrix, 5, found, path);
}
它应该运行,但它会一直给我这个语法错误:"错误c2061:语法错误:标识符'stack'"
您的标题文件应该看起来像
//function.h
#pragma once
#include <stack>
void dfs (int start, int goal, bool visited[], int **matrix, int size, bool
&found, std::stack<int>& path);
您需要在dfs
功能原型之前进行#include <stack>
。
您应该完全限定类型名称stack
(即std::stack
不是stack
),因为using namespace std;
是标题文件中的一个非常糟糕的主意。
相关文章:
- 为什么包含windows.h会产生语法错误,从而阻止类的实例化?(C2146,C2065)
- 错误 C2760:语法错误:映射迭代器上意外的标记"标识符",预期的";"
- 为什么我会收到错误 C2143 语法错误:缺少"*"之前的';'?
- 奇怪的代码抛出编译错误模板< J,int aSize=10> C2143:语法错误:在"<"之前缺少";"
- "错误 C0000:语法错误,令牌"<EOF>"处出现意外$end,并且不确定
- 我该怎么做才能摆脱使用命名空间时的语法错误?
- C++语法头文件错误
- 如何摆脱错误c2061;语法错误 cout?
- 语法错误:D3DX10Core 中的标识符'TEXTMETRICA'
- 错误 C2146:语法错误:标识符"A1"之前缺少","
- main.cpp(11):错误 C2059:语法错误:"字符串"
- 我想获取点的属性,它报告错误 C3867:"point::output_x":非标准语法;使用"&"创建指向成员的指针
- RedisGraph 语法错误在偏移量 8 靠近"创建"
- 如何修复此 FSM C++语法错误 C3867
- 函数错误 C2059:语法错误:'>'不起作用
- 为什么在main()之前断言会导致语法错误"error: expected ')' before numeric constant"?
- system() 返回错误语法错误:"("意外
- C++图形初始化错误(语法或丢失文件缺陷?
- 获取0:1(1):错误:语法错误,尝试编译着色器时意外$end
- Visual Studio错误:语法错误:标识符