一个C++模板问题

xlttap 2009-05-19 06:47:35
在ListUtil.cpp中有以下方法:
double ListUtil::get(list<double> &_ls,int index)
{
int i;
const int size = (int) _ls.size();
if(index<0 || index>=size)
throw invalid_argument("Index out of bounds exception");
list<double>:: iterator iter;
double buffer[size];
for(iter = _ls.begin(),i=0;iter! = _ls.end(),i<size;++iter,i++)
buffer[i] = *iter;
return buffer[size];
}
如果我想把这个函数改成一个模板,如:
template <typename T> //这里应该怎样写?我这样写编译会报错。
T ListUtil::get(list<T> & _ls,int index)
{...}
...全文
142 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
lpf000 2009-05-21
  • 打赏
  • 举报
回复
汗 流对象不能作为容器元素
xlttap 2009-05-20
  • 打赏
  • 举报
回复
我今天已经解决这个问题了。不过试了一下map,在map中放的是一个文件流对象,会出问题。
map<ifstream,Time>m;
在插入数据时,会产生错误。
lpf000 2009-05-19
  • 打赏
  • 举报
回复
你是类中的模板函数,要包含编译吧,头文件中声明模板函数,然后还要 #include"ListUtil.cpp"
thinkboy234 2009-05-19
  • 打赏
  • 举报
回复
学习~~~
freshairfly 2009-05-19
  • 打赏
  • 举报
回复
需要把实现也放到头文件里

另外变量最好不要用下划线在前的形式
别逗我乐 2009-05-19
  • 打赏
  • 举报
回复
你这是在类中声明模板函数。我说的对吧?
那就应该把类声明为模板类
fairchild811 2009-05-19
  • 打赏
  • 举报
回复
什么错,看起来没问题啊
  • 打赏
  • 举报
回复
这么一点,怎么报错,你把你编译的全贴出来
xlttap 2009-05-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 pingpo 的回复:]
用什么 编译器?VC6.0对模版支持不好。
[/Quote]
在linux下用Eclipse,GCC编译器
hemiya 2009-05-19
  • 打赏
  • 举报
回复
模板在.h或.hpp头文件中声明和定义。
pingpo 2009-05-19
  • 打赏
  • 举报
回复
用什么 编译器?VC6.0对模版支持不好。

65,210

社区成员

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

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