我正在编写一些代码,在这些代码中std::vector<double>
,在指定值之前声明了一个类型的变量.我无法与声明一起定义值,因为它需要多行代码来设置值.问题在于,这个变量本质上是一个常量,这意味着它一旦设置就不应该被修改.但是,它无法声明const
.
一种方法是创建另一个变量,const
并将值复制到其中.const std::vector<double> a(b);
会这样做,而a
不是b
在程序中使用.但是,我的变量可能很大,我希望学习除了必须执行复制之外的其他方法.
你们有什么建议吗?
您可以创建一个函数来初始化它.在最坏的情况下,你有一个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)