piy*_*iyo 0 c++ arrays std data-structures c++11
我对C++很陌生,所以如果答案显而易见,我会道歉.
我一直在编写STL风格的自定义数据结构,以此来提高我的技能.(我实际上对这个结构也有实际需要,但是为了学习目的,我会有点过火.)
这个结构需要动态调整大小(比如矢量),在我的初稿中,我使底层的"容器"成为C风格的数组,并手动完成所有的分配和解除分配.我正在重构,我想使用C++ 11风格的std :: array作为我的底层结构,只是为了让代码更清晰一些.我的问题是我不知道如何以允许调整大小的方式声明数组类成员.由于不同的模板参数需要不同的类型,因此我不能将成员声明为数组,然后在调整大小时将相同的变量分配给数组.
我想为每个可能的大小声明一个成员,比如
private:
array<T, 8>
array<T, 16>
array<T, 32>
...
Run Code Online (Sandbox Code Playgroud)
但我不希望每个数组都默认构造T成员.
这里有干净的解决方案吗?或者我只需要坚持使用C风格的数组?
谢谢您的帮助.
编辑:
在重新阅读我的问题后,我认为实际上并不合理.我知道std :: array的大小必须在编译时知道,但出于某种原因我的大脑推断我的目标是不可能的.现在我觉得很明显,我坚持使用C风格的数组和堆.我想我只需要写出来就可以清楚地表达出来.
谢谢你的回答.