尝试使用const int std :: array时出错

这个问题在这里已经有了答案:

  • 常量数组3个答案

  • 你如何将数组值赋给const int元素? 你应该在声明期间初始化它们。

    #include <array>
    
    using namespace std;
    
    int main() {
        array<const int, 4> vals{1, 2, 3, 4};
    
        return 0;
    }
    

    没有任何初始化,您的示例与无效的常量声明类似:

    const int a;
    

    由于std::array本身不能更新,我想下面的代码会更清楚理解。

    #include <array>
    
    using namespace std;
    
    int main() {
        const array<int, 4> vals{1, 2, 3, 4};
    
        return 0;
    }
    

    这是由于一个常量对象在定义时必须被初始化。 但是使用这个声明

    array<const int, 4> vals;
    

    你没有提供初始化程序。

    考虑下面的程序

    #include <iostream>
    #include <array>
    
    int main() 
    {
        int x = 42;
        std::array<const int, 4> vals = { { 1, 2, 3, 4 } };
    
        for ( int x : vals ) std::cout << x << ' ';
        std::cout << std::endl;
    
        return 0;
    }
    

    它的输出是

    1 2 3 4
    
    链接地址: http://www.djcxy.com/p/66747.html

    上一篇: Error while trying to use const int std::array

    下一篇: Error is generated with the sort method while sorting the values inside a vector