STL 中有没有可以存放多种数据类型数据的数据结构
3个回答
展开全部
STL 里没有直接提供这样的东西.我有两个方案供你选择:
1. 将你的多种数据结构描述为联合体union,
例如
struct unionval
{
int nType; // 表示union中的数据类型
uion myval
{
type1* typeval1;
type2* typeval2;
type3* typeval3;
}
}
考虑放入STL容器,比如
std::vector<unionval>;
当然你还需要开发配套的内存管理机制.现成的类似结构体也挺多的,比如ComVaraint.你可以参考一下.
2. 将boost::any与STL结合起来用,
比如
std::vector<boost::any> vecany;
vecany.push_back(10);
vecany.push_back("Name");
....任意的类型,但Any较为麻烦的是,将来取出内部值如果类型不对,容易崩溃.
1. 将你的多种数据结构描述为联合体union,
例如
struct unionval
{
int nType; // 表示union中的数据类型
uion myval
{
type1* typeval1;
type2* typeval2;
type3* typeval3;
}
}
考虑放入STL容器,比如
std::vector<unionval>;
当然你还需要开发配套的内存管理机制.现成的类似结构体也挺多的,比如ComVaraint.你可以参考一下.
2. 将boost::any与STL结合起来用,
比如
std::vector<boost::any> vecany;
vecany.push_back(10);
vecany.push_back("Name");
....任意的类型,但Any较为麻烦的是,将来取出内部值如果类型不对,容易崩溃.
展开全部
建议你将书中的例子代码敲一遍,可能会遇到一些编译错误或者警告
先做到没有编译错误,之后在编译器的提示下解决编译器的警告,因为编译器的警告往往指出了潜在的危险
学一门开发语言,语法本身是基础,但是比较简单。然而要提高,就要涉及到应用,这种提高往往是跨越性的,一定程度上也代表了菜鸟和大师的区别
语法学习完成之后,建议你选择一款编译器,比如Visual C++,C++ Builder,Intel C++,GCC(MinGW)等
然后基于指定编译器尝试写算法或者软件,或者找一些数据结构和算法的书,写写代码,出现了问题,你就会清楚下一步该怎么办了!
比如:
实现一些经典数据结构,比如树,图,查找等,你会有什么思路?
写个常规病毒的专杀工具,你会使用什么思路,什么算法?
写个简单的进程管理器,你会有什么思路,什么算法?
建议性的提示,或许对你有些帮助!
先做到没有编译错误,之后在编译器的提示下解决编译器的警告,因为编译器的警告往往指出了潜在的危险
学一门开发语言,语法本身是基础,但是比较简单。然而要提高,就要涉及到应用,这种提高往往是跨越性的,一定程度上也代表了菜鸟和大师的区别
语法学习完成之后,建议你选择一款编译器,比如Visual C++,C++ Builder,Intel C++,GCC(MinGW)等
然后基于指定编译器尝试写算法或者软件,或者找一些数据结构和算法的书,写写代码,出现了问题,你就会清楚下一步该怎么办了!
比如:
实现一些经典数据结构,比如树,图,查找等,你会有什么思路?
写个常规病毒的专杀工具,你会使用什么思路,什么算法?
写个简单的进程管理器,你会有什么思路,什么算法?
建议性的提示,或许对你有些帮助!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
STL 中全是模板函数 你可以任意构造数据类型 然后使用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询