C++ 运行时具有固定大小的数组
我知道我可以使用C++ 运行时具有固定大小的数组,c++,arrays,stl,containers,C++,Arrays,Stl,Containers,我知道我可以使用std::array来获得类型为type的数组和大小,这在编译时是固定的 此外,如果大小在编译时不是固定的,而是在运行时给定的,则可以使用std::vector 是否有一个std容器,它可以在运行时设置为某个大小,并且这个大小是不可更改的?我的目的是得到一个编译错误,如果大小在创建这个容器后被改变 当然,这可以使用指针与旧式数组一起存档。然而,这也带来了必须将指针和长度传递给函数的缺点 是否有一个std容器,它可以在运行时设置为某个大小,并且这个大小是不可更改的 不,目前还没有提
std::array
来获得类型为type
的数组和大小,这在编译时是固定的
此外,如果大小在编译时不是固定的,而是在运行时给定的,则可以使用std::vector
是否有一个std容器,它可以在运行时设置为某个大小,并且这个大小是不可更改的?我的目的是得到一个编译错误,如果大小在创建这个容器后被改变
当然,这可以使用指针与旧式数组一起存档。然而,这也带来了必须将指针和长度传递给函数的缺点
是否有一个std容器,它可以在运行时设置为某个大小,并且这个大小是不可更改的
不,目前还没有提供该功能的标准容器
您可以使用固定大小为std::vector
编写一个简单的包装器类,如下面的答案中所建议的:
std::vector
编写一个简单的包装器类,如下面的答案中所建议的:
std::unique\u ptr
,我认为+跟踪大小。可能是有限制的自定义容器实现?是否有理由不为此使用std::vector
,一个具有唯一指针+大小的小型类很容易实现。您正在寻找一个大小合适的std::vector
,其中使用操作符[]
,并禁止使用push_back
。我认为不值得为此编写太多额外的代码,只需要使用我不知道的已经存在的代码。最接近的应该是std::unique\u ptr
,我认为+跟踪大小。可能是有限制的自定义容器实现?是否有理由不为此使用std::vector
,一个具有唯一指针+大小的小型类很容易实现。您正在寻找一个大小合适的std::vector
,其中使用操作符[]
,并禁止使用push_back
。我认为不值得为此编写大量额外的代码,只需使用已有的代码即可