C++函数模板问题

fxfxfxfxw 2016-05-17 10:13:14
#include<iostream>
using namespace std;
template<typename T>
void sort(T &s,int n)
{
int i,j;
T t;
for (i = 0; i < n - 1; i++)
{
for (j = 0; j < n - i - 1; j++)
{
if (s[j] < s[j + 1])
{
t = s[j];
s[j] = s[j + 1];
s[j + 1] = t;
}
}
}
}

报错
但参数用指针接就没问题,怎么回事啊
...全文
112 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
void sort(T *s,int n)
赵4老师 2016-05-18
  • 打赏
  • 举报
回复
赵4老师 2016-05-18
  • 打赏
  • 举报
回复
断下贴
月凉西厢 2016-05-18
  • 打赏
  • 举报
回复
void sort(T &s,int n) ;中 s是引用,引用,引用!
paschen 版主 2016-05-18
  • 打赏
  • 举报
回复
如果你的参数是数组,那么T的类型也是数组,而t = s[j];就会有问题,因为你不能给数组赋值
lm_whales 2016-05-18
  • 打赏
  • 举报
回复
引用不能当指针用,也不能当数组用 需要指针可以传递指针的引用 需要数组可以传递数组的引用 而不是直接把引用当作数组或者指针使用
begodliker 2016-05-17
  • 打赏
  • 举报
回复
s必须是指针你的s[j]才有意义
dustpg 2016-05-17
  • 打赏
  • 举报
回复
int a = 0;
a[0] = 0;
VS
int a[1];
a[0] = 0;
模板是代码重用

65,186

社区成员

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

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