Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 预期为'';创建结构类型的变量时出错_C++ - Fatal编程技术网

C++ 预期为'';创建结构类型的变量时出错

C++ 预期为'';创建结构类型的变量时出错,c++,C++,代码如下: #include <cstdio> #include <iostream> #include <deque> struct vertex { bool visited; int value; int distance; }; int main() { int key_value; std::cin >> key_value; int num_vertices; std::c

代码如下:

#include <cstdio>
#include <iostream>
#include <deque>

struct vertex {
    bool visited;
    int value;
    int distance;
};

int main() {

    int key_value;
    std::cin >> key_value;

    int num_vertices;
    std::cin >> num_vertices;

    int** matrix;
    matrix = new int*[num_vertices];
    for (int i = 0; i < num_vertices; i++) {
        matrix[i] = new int[num_vertices];
    }

    vertex* vertices;
    vertices = new vertex[num_vertices];

    std::deque<vertex> queue;

    int vertex, value;
    while(std::cin >> vertex >> value) {
        vertices[vertex].value = value;
        int num_edges;
        std::cin >> num_edges;
        for(int i = 0; i < num_edges; i++) {
            int edge_to;
            std::cin >> edge_to;
            matrix[vertex][edge_to] = 1;
        }
    }

    //BFS

    vertices[0].visited = true;
    vertices[0].distance = 0;
    queue.push_back(vertices[0]);

    while(!queue.empty()) {
        vertex cur_v;
        cur_v = queue.front();
        queue.pop_front();
        for(int i = 1; i < num_vertices; i++) {
            if(matrix[cur_v, i]) {
                if(!vertices[i].visited) {
                    vertices[i].visited = true;
                    queue.push_back(vertices[i]);
                }
            }
        }
    }

    return(0);
}
#包括
#包括
#包括
结构顶点{
布尔访问;
int值;
整数距离;
};
int main(){
int key_值;
标准::cin>>键值;
int num_顶点;
std::cin>>顶点数;
int**矩阵;
矩阵=新整数*[num_顶点];
对于(int i=0;i>顶点>>值){
顶点[顶点]。值=值;
int num_边;
标准::cin>>边数;
对于(int i=0;i>边缘到;
矩阵[顶点][边到]=1;
}
}
//BFS
顶点[0]。已访问=真;
顶点[0]。距离=0;
queue.push_back(顶点[0]);
而(!queue.empty()){
顶点电流;
cur_v=queue.front();
queue.pop_front();
对于(int i=1;i
我得到以下错误:

在函数“int main()”中搜索\u gilene\u matt.cc: 搜索_gilene_matt.cc:42:错误:应为“;”在“cur_v”之前 search_gilene_matt.cc:43:错误:“cur_v”未在此范围内声明

有人能解释一下是什么导致了这一切吗


我已经查找了一个缺少的分号,但我不知道它会在哪里。

看起来您声明了
int-vertex
,它隐藏了您的
struct-vertex
。重命名int,就可以了。

当您写入:

int vertex, value;
vertex cur_v;
然后
vertex
成为变量的名称,只要该变量在范围内

后来你写道:

int vertex, value;
vertex cur_v;
由于
vertex
是变量的名称,因此失败


要解决此问题,请将变量命名为不同的名称,或使用
struct vertex
引用类型。

代码是否正确编译和运行?IntelliSense错误可能是IDE中的一个错误,它们与程序错误不同。当您遇到编译器错误时,它们是什么?当出现编译器错误时,请始终在问题中包含完整且未经编辑的错误。同时在显示的代码中标出错误所在的行。提供一个而不是一堆点怎么样?
cur\u v,我不应该使用逗号运算符。。。你想要
][
。另外,编译器往往会做一些真正有用的事情——告诉你错误所在的行号。把一个大的
//错误放在这里如何!
在你的代码列表中…?
int vertex,value;
阴影类型
vertex
这个答案很清楚,很好地解释了问题和解决方案。