【发布时间】:2018-12-11 11:13:38
【问题描述】:
我知道我可以使用std::array<Type, Size> 来获得Type 类型的数组和一个大小,该大小在编译时修复。
此外,std::vector 可以使用,如果大小在编译时不是固定的,而是在运行时给出的。
是否有一个标准容器,可以在运行时设置为某个大小并且这个大小是不可更改的?我的意图是如果在创建此容器后更改大小,则会出现编译错误。
当然,这可以通过使用指针的老式数组进行归档。然而,这也带来了必须将指针和长度传递给函数的缺点?
【问题讨论】:
-
我不知道。最接近的是
std::unique_ptr<double[]>,我认为 + 大小跟踪。 -
可能是有限制的自定义容器实现?
-
有理由不为此使用
std::vector吗? -
确实,一个具有唯一指针+大小的小类很容易实现。
-
您正在寻找一个大小合适的
std::vector,在此您使用operator[]并禁止使用push_back。我认为不值得为此编写大量额外代码,只需使用已有的代码即可
标签: c++ arrays stl containers