求教,于网上看的回答千奇百怪,请问我这里调用模版 错在哪里?

Firehotest 2012-06-12 04:55:55
#include <iostream>
using namespace std;
template <class elem>
void swap (elem a[], int i, int j)
{
elem temp = elem[i];
elem[i] = elem[j];
elem[j] = elem temp;
}
template <class elem>
void inssort (elem a[], int size)
{
for( int i = 1; i<n ; i++)
{
for ( int j = i -1; j>=0; j--)
{
if ( a[j] > a[j+1])
{
swap( a, j, j+1);
}
}
}
}
int main()
{
int shuzu [5] = {1,3,5,4,2};
int s = 5;
inssort <int>( shuzu [5],s);
for ( int temp = 0; temp< 5; temp ++)
{
cout<< shuzu [temp]<<endl;
}
}
...全文
80 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
W170532934 2012-06-12
  • 打赏
  • 举报
回复

#include <iostream>
using namespace std;
template <class elem>
void swap (elem a[], int i, int j)
{
elem temp = a[i];
a[i] = a[j];
a[j] = temp;
}
template <class elem>
void inssort (elem a[], int size)
{
for( int i = 1; i<size ; i++)
{
for ( int j = i -1; j>=0; j--)
{
if ( a[j] > a[j+1])
{
swap( a, j, j+1);
}
}
}
}
int main()
{
int shuzu [5] = {1,3,5,4,2};
int s = 5;
inssort <int>( shuzu,s);
for ( int temp = 0; temp< 5; temp ++)
{
cout<< shuzu [temp]<<endl;
}
}
baichi4141 2012-06-12
  • 打赏
  • 举报
回复
既然觉得网上的代码千奇百怪,就去看看经典教材上的例子
想当然的写代码,能通过编译那真是运气好
baichi4141 2012-06-12
  • 打赏
  • 举报
回复
template <class elem>
void swap (elem a[], int i, int j)
{
elem temp = elem[i];
elem[i] = elem[j];
elem[j] = elem temp;
}

模板相当于自动替换类型
当传入int数组时,这段代码被替换为以下代码

void swap (int a[], int i, int j)
{
int temp = int[i];
int[i] = int[j];
int[j] = int temp;
}

楼主你自己觉得这段代码能通过编译吗?

64,649

社区成员

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

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