STL 中有没有可以存放多种数据类型数据的数据结构

[复制链接]
查看11 | 回复1 | 2011-3-5 06:50:04 | 显示全部楼层 |阅读模式
回复

使用道具 举报

千问 | 2011-3-5 06:50:04 | 显示全部楼层
<pre id=\"best-answer-content\" class=\"reply-text mb10\">STL 里没有直接提供这样的东西.我有两个方案供你选择:
1. 将你的多种数据结构描述为联合体union,
例如
struct unionval
{
int nType; // 表示union中的数据类型
uion myval
{
type1* typeval1;
type2* typeval2;
type3* typeval3;
}
}
考虑放入STL容器,比如
std::vectorunionval;
当然你还需要开发配套的内存管理机制.现成的类似结构体也挺多的,比如ComVaraint.你可以参考一下.
2. 将boost::any与STL结合起来用,
比如
std::vectorboost::any vecany;
vecany.push_back(10);
vecany.push_back(\"Name\");
....任意的类型,但Any较为麻烦的是,将来取出内部值如果类型不对,容易崩溃.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行