-1
我路過載體爲什麼無法使用矢量的方法獲取其自身輸出的返回矢量?
的微妙差異之間的困惑這是我的程序的某些部分
void print(vector<vector<char>>&field)
vector<vector<char>> bomb(vector<vector<char>>&field)
我遇到一個情況下,我不能做這樣的事情
print((bomb(bomb(field)));
錯誤是
error: invalid initialization of non-const reference of type 'std::vector<std::vector<char> >&' from an rvalue of type 'std::vector<std::vector<char> >'
print(bomb(bomb(field)));
但是,如果我的廣告DA常量的方法定義
void print(const vector<vector<char>>&field)
vector<vector<char>> bomb(const vector<vector<char>>&field)
那麼這將工作
是什麼
1. vector<vector<char>> bomb(vector<vector<char>>&field)
3. vector<vector<char>> bomb(const vector<vector<char>>&field)
4. vector<vector<char>> bomb(const vector<vector<char>>field)
之間的差別,我相信1引用傳遞,一個載體,它就是我一直在做。如果沒有編譯器的抱怨,我怎麼會不會像炸彈(炸彈(字段))那樣做?
'const'意味着再次什麼?重新考慮! –
'Bomb(..)'正在返回一個臨時的'vector'。臨時不能綁定到非const引用參數。 –
http://stackoverflow.com/q/1565600/873025 – Snps