无需在C++中复制即可使变量不可更改

yu *_*uan 4 c++ vector

我正在编写一些代码,在这些代码中std::vector<double>,在指定值之前声明了一个类型的变量.我无法与声明一起定义值,因为它需要多行代码来设置值.问题在于,这个变量本质上是一个常量,这意味着它一旦设置就不应该被修改.但是,它无法声明const.

一种方法是创建另一个变量,const并将值复制到其中.const std::vector<double> a(b);会这样做,而a不是b在程序中使用.但是,我的变量可能很大,我希望学习除了必须执行复制之外的其他方法.

你们有什么建议吗?

Jar*_*d42 8

您可以创建一个函数来初始化它.在最坏的情况下,你有一个move.充其量你有(N)RVO(返回值优化).

std::vector<Object> CreateBigVector();
Run Code Online (Sandbox Code Playgroud)

然后

const std::vector<Object> myObject = CreateBigVector();
Run Code Online (Sandbox Code Playgroud)