c++ - 扩展的初始化列表和数组

标签 c++ arrays c++11 initializer-list

我有简单的功能,例如:

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/

相关文章:

c++ - 子字符串输出不符合预期?

arrays - Excel:如何否定 bool 数组?

c++ - 使用对象引用作为 std::unordered_map 中的键

c++ - 不再找到 DirectX 命名空间

c++ - 在 SELECT 中拆分一个 varbinary

javascript - 如何通过 react 中的组件传递变量的值?

C++11 - 我丢失了一个移动/复制任务

c++ - std::unique 可以用来确定自定义类的对象是否具有相同的值吗?

c++ - 令人困惑的 memcpy 行为,如何停止重叠

python - 为什么这个 PIL 调用会使 python 崩溃?