socket上的数据类型信息;动态初始化?

时间:2010-09-03 17:11:57

标签: c++ visual-c++

我的数据来自一个看起来像这样的套接字:

(h)(int,char,float,int,char)(/h)(d)(2,a,1.32,45,d)(3,d,3.45,32,a)(/d)

到达数据的数据类型是动态的,仅在收到标头时才知道。然后我必须创建相应的std::vector来存储数据。在这种情况下,两个int,两个char和一个float向量。在这种情况下,我不知道如何初始化。有人可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

std::vector本身无法做到这一点。听起来你需要类似于Boost.AnyBoost.Variant的东西,你需要决定哪个。如果您的类型很少,那么简单的union也可以使用。

答案 1 :(得分:0)

我想我明白了。如果union包含所有数据类型,我可以在任何时间使用其中一个,并且可以使用union的名称初始化它。辉煌。谢谢!