0
我遇到了這個代碼解釋對函數C++
#define pii pair<int, int>
#define pip pair<int, pii>
...
vector<pip> graph;
graph[i] = pip(c, pii(u,v));
當我嘗試
graph[i] = pair<c,pair<u,v>>;
我得到一個錯誤信息
error: 'c' cannot appear in a constant-expression
error: 'i' cannot appear in a constant-expression
error: 'j' cannot appear in a constant-expression
爲什麼這兩個表達式不相等?
什麼是'c','i','j','u'和'v'?從'pip(c,pii(u,v))'我可以推斷出'c','u'和'v'可能是整數。你想要將它們替換爲'pair'的模板參數?爲什麼你認爲將正常括號改爲尖括號並不會改變表達式的含義? – lisyarus
是的變量是整數。我試圖理解'pip(c,pii(u,v))'是如何工作的,並且認爲如果我用'#define'替換括號,它也是一樣的。還試用了正常的括號。 – aurel
「以爲這是相同的,如果我替換括號,因爲#define」 - 宏與尖括號無關。 – lisyarus