我有简单的功能,例如:
void fun(vector<int> vec)
{
//...
}
void fun(int* smth)
{
//...
}
当我在我的程序中写的时候没有。
fun({2,3});
使用 vector 参数让我觉得很有趣,我知道它在新的 C++ 扩展初始化列表中,但我想使用新的 C++ 并告诉编译器这只是一个 int 数组,我该怎么做?
编辑:
在 1 行中完成它会很好 :)
最佳答案
您不能用数组初始化指针,因为指针不是数组(尽管在某些情况下出现这种情况,但事实并非如此)。
您必须传递一个指向预先存在的数组的指针。或者,使用 vector
重载——当然,你更喜欢这个?!如果这两个函数做不同的事情,那么为什么它们会彼此重载(即为什么重要)?
关于c++ - 扩展的初始化列表和数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13555275/