STL容器中存放不同类型实现方法

都知道C++STL容器,只要定义好之后就只能存定义的类型,不能放入别的类型。

以vector容器为例,定义好只存int类型,其它类型将无法存入。

哪容器里有没有办法可以存不同类型呢?

办法肯定是有的,C++就是这点好,什么都可以做。

下面讲个我想到的一个方法,估计还有很多方法。

先定义一个结构AnyData,结构中定义状态Eflag(用于判断是存的是什么类型)和union(里面存数据)。

结构AnyData定义构造函数,为每种类型定义一个。

getType()用于获取当前数据类型。

getVal()重载函数用于获取实际数据值。

用stl vector容器为例,实现存放不同类型完整代码:

输出结果:

 

《STL容器中存放不同类型实现方法》上有19条评论

评论已关闭。