如何在 C 容器中存储不同类型的对象
在单个 C 容器中存储不同类型的对象可能会带来挑战,作为地图、向量和列表等标准容器,将成员限制为单一类型。
一种解决方案是利用 Boost.Any,这是一种类型安全的包装器,可以包含任何类型的实例。通过将 Boost.Any 的实例存储在容器中,您可以容纳不同类型的对象。这种方法因其稳健性和考虑边缘情况而受到青睐。
或者,您可以创建一个自定义结构或联合,其中包含所有潜在类型的成员,以及指定活动类型的指示器。然而,联合需要谨慎,因为如果读取了不正确的成员,可能会出现未定义的行为,并且它们将活动成员一次限制为一个。
值得注意的是,C 标准容器已经是通用的,但它们的成员必须只能属于同一类型。存储混合类型对象的需求是一个有趣的问题,仔细考虑它在您的上下文中的适用性非常重要。
以上是如何在单个 C 容器中存储不同类型的对象?的详细内容。更多信息请关注PHP中文网其他相关文章!