C++ C++;-如何告知未使用或未设置数据字段?
我有一个C++ C++;-如何告知未使用或未设置数据字段?,c++,data-structures,C++,Data Structures,我有一个std::vector,其中T是一种由小型数值字段组成的类型,例如ints或float;假设我的T总共有4个字段,因此,例如在T中,我有一个int、一个uint32\u T、一个double和一个float 有时我需要全部4个,有时我只需要1个,而所有其他的都不需要,或者我可以很容易地丢弃它们,因为当我阅读它们时它们处于“默认值”(0或0.0) 有一种方法可以设计我的类型T,例如,当我插入一组新值时,我可以将未使用的字段标记为未使用 显然,我的问题是,我不能对每个组合使用不同的t(对每个
std::vector
,其中T
是一种由小型数值字段组成的类型,例如ints
或float
;假设我的T
总共有4个字段,因此,例如在T
中,我有一个int
、一个uint32\u T
、一个double
和一个float
有时我需要全部4个,有时我只需要1个,而所有其他的都不需要,或者我可以很容易地丢弃它们,因为当我阅读它们时它们处于“默认值”(0
或0.0
)
有一种方法可以设计我的类型T
,例如,当我插入一组新值时,我可以将未使用的字段标记为未使用
显然,我的问题是,我不能对每个组合使用不同的t
(对每个组合来说,这也是一件疯狂的事情),我希望组合一个紧凑的结构(甚至不花时间插入我没有使用的值)每个场景都有一个公共类型,因此用户只需检查该记录是否被使用
这是标准C++ 11还是C++ 03?< /p> < p>这是不可能的。根据定义,每个字段都被使用
如果您不需要类的某些实例的字段,那么您有一些替代方法。例如:
使用具有特殊含义的特定值。例如:“如果
有些人的年龄是-1岁,这意味着我不知道他们的年龄,也不知道他们的年龄
与此无关。”
使用附加布尔字段是否使用了
实际存储是否使用字段X。然后,在你的
程序逻辑,在适当的位置使用该字段。这不是
我推荐的设计,但在某些非常特殊的情况下可能
有道理
一个指针。您可以使用int*
字段代替int
。如果指针为NULL,则不使用该值。否则,它就是
这是不可能的。根据定义,每个字段都被使用
如果您不需要类的某些实例的字段,那么您有一些替代方法。例如:
使用具有特殊含义的特定值。例如:“如果
有些人的年龄是-1岁,这意味着我不知道他们的年龄,也不知道他们的年龄
与此无关。”
使用附加布尔字段是否使用了
实际存储是否使用字段X。然后,在你的
程序逻辑,在适当的位置使用该字段。这不是
我推荐的设计,但在某些非常特殊的情况下可能
有道理
一个指针。您可以使用int*
字段代替int
。如果指针为NULL,则不使用该值。否则,它就是
这是不可能的。根据定义,每个字段都被使用
如果您不需要类的某些实例的字段,那么您有一些替代方法。例如:
使用具有特殊含义的特定值。例如:“如果
有些人的年龄是-1岁,这意味着我不知道他们的年龄,也不知道他们的年龄
与此无关。”
使用附加布尔字段是否使用了
实际存储是否使用字段X。然后,在你的
程序逻辑,在适当的位置使用该字段。这不是
我推荐的设计,但在某些非常特殊的情况下可能
有道理
一个指针。您可以使用int*
字段代替int
。如果指针为NULL,则不使用该值。否则,它就是
这是不可能的。根据定义,每个字段都被使用
如果您不需要类的某些实例的字段,那么您有一些替代方法。例如:
使用具有特殊含义的特定值。例如:“如果
有些人的年龄是-1岁,这意味着我不知道他们的年龄,也不知道他们的年龄
与此无关。”
使用附加布尔字段是否使用了
实际存储是否使用字段X。然后,在你的
程序逻辑,在适当的位置使用该字段。这不是
我推荐的设计,但在某些非常特殊的情况下可能
有道理
一个指针。您可以使用int*
字段代替int
。如果指针为NULL,则不使用该值。否则,它就是
您提示的是可选类型。您可能需要重新设计架构,这样就不需要存储不必要的值。但是,如果您仍然希望这样做,有:
如果你不想使用
std::vector< optional<T> >
std::vector
从库中,可以使用标准库中的
std::vector< std::pair<T,bool> >
std::vector
并且应该在中提供。您提示的是可选类型。您可能需要重新设计架构,这样就不需要存储不必要的值。但是,如果您仍然希望这样做,有:
如果你不想使用
std::vector< optional<T> >
std::vector
从库中,可以使用标准库中的
std::vector< std::pair<T,bool> >
std::vector
并且应该在中提供。您提示的是可选类型。您可能需要重新设计架构,这样就不需要存储不必要的值。但是,如果您仍然希望这样做,有:
如果你不想使用
std::vector< optional<T> >
std::vector
从库中,可以使用标准库中的
std::vector< std::pair<T,bool> >
std::vector
并且应该在中提供。您提示的是可选类型。你可能想重新设计