c++ - auto 用于容器的类型是什么?

标签 c++ c++11 types auto

我可以通过在 C++ 中使用不同的容器来实现相同的输出。例如 。 .

    std::array<int, 5> v = {1,2,3,4,5};
    for(auto i : v)
        std::cout << i << ", ";

    std::vector<int> v = {1,2,3,4,5};

    int v[] = {1,2,3,4,5};

等等。 .

那么auto在这里使用什么容器呢?

    auto v = {1,2,3,4,5};
    for(auto i : v)
        std::cout << i << ", ";

最佳答案

std::initializer_list<int>


自己检查并不难,您可以随时decltype(v) ,然后将其与所述列表类型进行比较。

它还有另一个很好的属性,有时非常有用,你可能会感兴趣:

for (auto i : {1,2,3,4,5})
    std::cout << i << ", ";

可以这样做是因为initializer_list保持标准范围接口(interface)。

关于c++ - auto 用于容器的类型是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17361651/

相关文章:

c++ - 在命名空间中使用指令和函数重载

c++ - glUnmapBuffer(GL_ARRAY_BUFFER) 与 glBindBuffer(GL_ARRAY_BUFFER,0)

c++ - SCardGetReaderDeviceInstanceId 的实现

c++ - std::shared_ptr: reset() 与赋值

Haskell - 无法将类型 [] 与 IO 匹配

c++ - (C++) 有没有办法在循环中创建不同的矩阵?

c++ - 在变量初始化期间使用 C++ lambda 函数

c++ - 可以在主体中调用 C++ 中的委托(delegate)构造函数还是仅在初始化列表中调用?

node.js - puppeteer 类型 node_modules/puppeteer/lib/types "' has no exported member ' Cookie'

c++ - 为什么 C++ 库经常定义自己的原始类型?