使用常量初始化器列表初始化常量向量

3
#include <vector>

int main()
{
    typedef const std::vector<const int> set_t;
    set_t Low = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18};

    return 0;
}

编译上面的代码时,我从STL头文件中得到了成千上万个错误。

我想在这里做的是初始化一个向量,并确保值无法在以后的某个时间被更改,并确保不会添加新的值。

这个向量应该在创建时只被创建一次,带有初始值,并且不能以任何方式进行更改。

这里出了什么问题?


2
"const int" 不是一个有效的类型。需要移动元素。 - chris
如果大小在编译时是固定和已知的,您可以使用std::array - Bryan Chen
1个回答

3

这也是一个常量向量,它将使您的代码编译。

typedef const std::vector<int> set_t;

使 std::vector 独立成 const,将只暴露非修改接口。您的 int 不会改变。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接