c++ - 使用 initializer_list 上的数据

标签 c++ pointers pass-by-reference initializer-list pass-by-value

所以我正在查看 data函数,我看到它有这个重载:

template <class E>
constexpr const E* data(std::initializer_list<E> il) noexcept;

假设我用以下方法调用 foo(data({ 0, 13, 42 })):

void foo(const int* param) {
    cout << param[0] << ' ' << param[1] << ' ' << param[2] << endl;
}

我实际上是在复制 initializer_list 吗?

最佳答案

是的,您正在复制 initializer_list

但是,您并不是在复制“整数列表”。

initializer_list 基本上是一个指针和一个长度。

关于c++ - 使用 initializer_list 上的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56299384/

相关文章:

c++ - 在堆栈上取消引用变量或最近取消引用的成本?

c - 如何在C中将int打印到char类型的数组变量中?

c++ - 通过引用传递 vector 然后调用清除

c++ - c++中 vector 和列表的setter和getter

python - SwigPyIterator 值始终是基类

c++ - 将枚举类与 std::bitset 一起使用

c++ - 如何将 winhttp api 与 "transfer-encoding: chunked"一起使用

c++ - 指向函数中结构元素字段数组的指针

c - 在 C 中使用数组参数是否被认为是不好的做法?

c++ - 如何返回方法体中声明的 vector 的引用?