12

我可以通过在 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 << ", ";
4

1 回答 1

19

std::initializer_list<int>


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

这有另一个很好的属性,有时非常有用并且您可能会感兴趣:

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

initializer_list因为保留了标准范围接口,所以可以做到这一点。

于 2013-06-28T09:38:56.973 回答