【发布时间】:2017-06-06 10:55:27
【问题描述】:
是否有一种异构容器形式,能够存储例如不同的原始类型(例如int、float、double)?
最终我希望能够在不明确引用类型的情况下在计算中使用元素,例如 auto res = a + b,其中操作数 a 和 b 是从容器中拉出的元素,可以是相同或不同的类型。
【问题讨论】:
-
您正在寻找一种弱类型的编程语言。为什么需要在 C++ 中执行此操作?好吧,也许可以考虑 Boost 的 Variant 或 Any。
-
C++ 是一种静态类型语言。这意味着每个对象的类型是在编译时指定的,而不是运行时。 C++ 从根本上不像你描述的那样工作。
-
@CodyGray:而是“动态类型”,它仍然可以是“强类型”。只是不是“静态类型”。
-
可以使用std::tuple
-
@CinCout 元组只能在编译时知道元素数量的情况下使用。另外,您应该只知道类型进入的顺序。如果您声明一个具有
float作为其第三个元素的元组,则在执行期间无法更改。我还建议boost variant。
标签: c++ c++11 stl containers