C++ STL 向量具有许多不错的属性,但只有在运行时已知每个项目的大小时才有效。
我想要一个在运行时具有动态项目大小的向量类。
背景:我的项目由整数和双精度序列组成;仅在运行时已知的序列。在运行时为向量指定每个项目的大小就足够了。
我知道可能的解决方法,但这些往往不能反映算法的基本思想,这对于维护来说总是一件坏事。是否有类可以提供如此便利且工作效率如人们所期望的那样?
EDIT:
这与整个数组中的项目大小不同无关。它有nothing与此有关。它在运行时决定数组中的项目有多大;即与模板使用的静态类型相比,动态类型的(非常)弱形式。
因此,对象的初始化应该如下所示:
DynamicVector V( lengthofvector, sizeofelement );
一个应用是单纯网格。对象 $V$ 包含固定大小或“类型”的项目,每个项目由用于拓扑信息的整数和用于某些几何信息的双精度数组成。甚至可能会有布尔值发挥作用,但到目前为止这是无关紧要的。
问题是,如果您没有办法存储向量中每个项目的大小,您将永远无法取回数据。
将所有项目存储为double
?这大大简化了事情。
或者你可以考虑boost::variant
.
编辑:但是你真的能进一步解释为什么你想在同一序列中存储两种不同的类型吗?这有时可能表明底层设计需要进一步思考。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)