gpt4 book ai didi

具有动态项目大小的 C++ vector

转载 作者:太空狗 更新时间:2023-10-29 20:30:39 26 4
gpt4 key购买 nike

C++ STL vector 有很多不错的属性,但只有在运行时知道每个项目的大小时才有效。

我想要一个在运行时具有动态项目大小的 vector 类。

背景:我的项目由一系列整数和 double 组成;仅在运行时已知的序列。在运行时为 vector 指定每个项目的大小就足够了。

我知道可能的变通办法,但这些往往不能反射(reflect)算法的基本思想,这在维护方面总是一件坏事。有没有像人们期望的那样提供便利和高效的类(class)?

编辑:

这与整个阵列中不同的项目大小无关。它与那无关。它在运行时决定数组中的项目有多大;即,一种(非常)弱的动态类型形式,与模板中使用的静态类型形成对比。

因此对象的初始化应该是这样的:

DynamicVector V( lengthofvector, sizeofelement );

应用程序是简单的网格。对象 $V$ 包含固定大小或“类型”的项,每个项都包含用于拓扑信息的整数和用于某些几何信息的 double 。甚至可能会使用 bool 值,但目前为止这无关紧要。

最佳答案

问题是,如果您没有办法将每个项目的大小存储在 vector 中,您将永远无法取回数据。

将所有项目存储为 double 怎么样?这大大简化了事情。

或者,您可以考虑 boost::variant

编辑:但是您真的可以进一步解释为什么要在同一序列中存储两种不同的类型吗?这有时可能表明底层设计需要进一步考虑。

关于具有动态项目大小的 C++ vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6294603/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com