求教:如何用容器保存模版结构?

Ace丶双鱼 2011-05-19 10:16:49
代码如下:
template<class T>
struct Temp
{
public:
T GetT() {return t;}
T t;
};

std::vector<Temp> vec; // 本行错误,编译不过,求教该如何写?
新手分不多,诚心求教。
...全文
88 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
www_adintr_com 2011-05-19
  • 打赏
  • 举报
回复
用 boost::any 吧, 你是不是想要这种?


#include <boost/any.hpp>
#include <vector>
#include <string>

void main()
{
std::vector<boost::any> v;
v.push_back(10);
v.push_back(std::string("hello world!"));
}



如果是的话,看下 boost_any 的实现就是了.
Ace丶双鱼 2011-05-19
  • 打赏
  • 举报
回复
感谢楼上的二位

“你在用的时候再实例化也没什么大不了” 能不能再说说这个该怎么写?
最好有代码说明。。。

my_vector 这个如果想push_back Temp类型的数据 该怎么写呢?

麻烦了。。。
woncomp 2011-05-19
  • 打赏
  • 举报
回复
你在用的时候再实例化也没什么大不了


如果实在想提前封装成为一个类的话
template <class T>
struct my_vector : public std::vector<Temp<T> >{};
pengzhixi 2011-05-19
  • 打赏
  • 举报
回复
没有。
Ace丶双鱼 2011-05-19
  • 打赏
  • 举报
回复
哦 好的 知道了 谢谢。。。

那有没有别的解决办法来处理这个问题呢?万分感谢!
pengzhixi 2011-05-19
  • 打赏
  • 举报
回复
但是你在实例化模板的时候肯定得给出实际的模板参数。
Ace丶双鱼 2011-05-19
  • 打赏
  • 举报
回复
谢谢回复
但是那里面只能保存int型的数据啊
我想struct Temp里面可以保存int,或者float,或者其他别的类型。。。
pengzhixi 2011-05-19
  • 打赏
  • 举报
回复
vector<Temp<int> >vec否则没办法
herman~~ 2011-05-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 adlay 的回复:]
用 boost::any 吧, 你是不是想要这种?

C/C++ code


#include <boost/any.hpp>
#include <vector>
#include <string>

void main()
{
std::vector<boost::any> v;
v.push_back(10);
v.push_back(std……
[/Quote]

UP
Ace丶双鱼 2011-05-19
  • 打赏
  • 举报
回复
谢谢大家 我已经找到合适的方式了。结贴给分。

64,652

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧