下面的代碼片段正在生成error: expected identifier before 'nullptr'以及error: expected ',' or '...' before 'nullptr'在線edge minIncoming(nullptr, NOPATH);
任何想法有什么問題嗎?我要做的就是使用建構式來初始化 minIncoming。我嘗試搜索但找不到答案。如果問題太基本,我提前道歉。
#include <vector>
#include <unordered_map>
#include <fstream>
#include <sstream>
#include <algorithm>
#include <queue>
#define MAXN 8
#define NOPATH 1000000
#define DEBUG
using namespace std;
struct vertex;
struct edge
{
vertex* node;
int weight;
edge(vertex* n, int w) : node(n), weight(w) {}
};
struct vertex
{
vector< edge > outgoing;
edge minIncoming(nullptr, NOPATH);
bool visited;
#ifdef DEBUG
int id;
#endif // DEBUG
};
uj5u.com熱心網友回復:
由于 C 最令人頭疼的 parse,宣告:
edge minIncoming(nullptr, NOPATH);
被視為好像您正在宣告一個以minIncoming回傳型別命名edge并采用兩個引數的函式。但是由于在函式宣告期間,我們指定了引數的型別而不是指定引數(就像您在程式中所做的那樣),所以程式給出了 mentinoed 錯誤。
要解決此問題,請將該陳述句替換為:
edge minIncoming{ nullptr, NOPATH };
現在,上面的陳述句定義了一個名為minIncomingtype的物件(資料成員),edge同時傳遞了兩個初始化器。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/437758.html
標籤:C
上一篇:字串中最長的回文?
下一篇:迭代引數包
