是否可以输入到const double数组
Is it possible to input to a const double array?
const double* constArr = new const double [];
for(int i =0;i<n;i++)
cin >>constArr[i];
这样的东西?是否可以输入const double数组?
最清洁的解决方案是使用将元素添加到非const容器中的出厂功能,然后将其移动到常数容器中。您不应该使用原始的指针,因此我会将其更改为unique_ptr
,这将使您或多或少地通过在销毁指针时自动删除数组的额外好处来做相同的事情。
std::unique_ptr<double[]> create_my_array(size_t n) {
auto my_array = std::make_unique<double[]>(n);
for(size_t i = 0; i < n; ++i)
cin >> my_array[i];
return my_array;
}
然后您可以做
std::unique_ptr<const double[]> const_array = create_my_array(n);
您可以使用new double[]
的函数做一些非常相似的操作,将指针和Callee存储到const double *
中,但是该方法不再实现,并且很容易泄漏内存。
如果您根本不想使用函数,例如,由于整个程序中只需要一次功能,因此您可以使用scoped unique_ptr<double>
使用相同的想法,然后将其移至const版本中。
std::unique_ptr<const double[]> const_array;
{ // Enclosing this in a block makes the non const pointer unavailable after we've filled it
auto my_array = std::make_unique<double[]>(n);
for (size_t i = 0; i < n; ++i)
std::cin >> my_array[i];
const_array = std::move(my_array);
}
相关文章:
- test1.cpp:9:77:错误:对"(const std::normal_distribution) <double>(std::mt19937&)"的调用不匹配
- 使用 const double* const 作为模板参数 - 代码性能问题
- 如何为const char double指针(使用新的)动态分配内存
- 对"displayForStudent(int, int const*, double const*, int)"的未定义引用 collect2.exe:错误:ld 返回 1 个退出状态
- 是否可以输入到const double数组
- 错误:将"const double"绑定到类型为"double&"的引用会丢弃限定符
- C++ const double pointer
- SWIG - 如何使用采用'const double*'的构造函数将类包装为 python
- 类型为"double" snd const char [3]' 到二进制'operator<<'的无效操作数
- 'double' 和 'const char [2]' 到二进制"运算符!="的无效操作数|
- 从const doubles的指针返回指向double的指针
- 了解错误"error: cannot convert ‘char**’ to ‘const char*’ for argument ‘1’ to ‘double atof(const char*)’"
- 将“const”作为“const double”的“this”参数传递时出错,将丢弃限定符
- C++如何处理 const double&引用 int?
- 将"const"与标量类型一起使用的好处?(例如 "const double"或"const int")
- 哪个更好#define PI还是const double PI
- GCC错误:从double*到const double的转换无效
- 重载的'qHash(const double&)'的调用是不明确的
- 将const double[][]数组作为参数传递给double**接口
- 调用"事件:<float>:通知(NULL, const double&)"没有匹配函数|