如何将矢量的矢量作为函数中的默认参数传递,C++
How to pass vector of vector as default argument in functions, C++
IDE 显示最后一个参数有误。我是 C++ 的新手,无法弄清楚。
请帮忙。提前致谢。
void Box_2(vector<vector<int>> &v,
string text1 = "",
string text2 = "",
vector<vector<int>> &trace = {}
)
问题是我们无法将左值引用绑定到non-const对象到相应类型的临时对象.
例如,
int &ref = 5; //THIS WILL NOT WORK
const int &REF = 5; //THIS WILL WORK
为了解决这个错误你可以使最后一个参数name
成为一个对const对象的左值引用允许绑定到临时文件,如下所示:
void Box_2(vector<vector<int>> &v,
string text1 = "",
string text2 ="",
//---------vvvvv------------------------------------->low level const added here
const vector<vector<int>> &trace = {}
);
请注意,在上面您将无法更改 name
。这是添加 low-level const
.
的结果
您也可以完全不使用默认参数,如下所示:
void Box_2(vector<vector<int>> &v, string text1, string text2, vector<vector<int>> &trace);
现在您将能够更改 name
绑定的基础向量。
IDE 显示最后一个参数有误。我是 C++ 的新手,无法弄清楚。 请帮忙。提前致谢。
void Box_2(vector<vector<int>> &v,
string text1 = "",
string text2 = "",
vector<vector<int>> &trace = {}
)
问题是我们无法将左值引用绑定到non-const对象到相应类型的临时对象.
例如,
int &ref = 5; //THIS WILL NOT WORK
const int &REF = 5; //THIS WILL WORK
为了解决这个错误你可以使最后一个参数name
成为一个对const对象的左值引用允许绑定到临时文件,如下所示:
void Box_2(vector<vector<int>> &v,
string text1 = "",
string text2 ="",
//---------vvvvv------------------------------------->low level const added here
const vector<vector<int>> &trace = {}
);
请注意,在上面您将无法更改 name
。这是添加 low-level const
.
您也可以完全不使用默认参数,如下所示:
void Box_2(vector<vector<int>> &v, string text1, string text2, vector<vector<int>> &trace);
现在您将能够更改 name
绑定的基础向量。