首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-06-13 
求教,于网上看的回答千奇百怪,请问我这里调用模版 错在哪里?#include iostreamusing namespace stdtemp

求教,于网上看的回答千奇百怪,请问我这里调用模版 错在哪里?
#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;
}
}

[解决办法]
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;
}

楼主你自己觉得这段代码能通过编译吗?
[解决办法]
既然觉得网上的代码千奇百怪,就去看看经典教材上的例子
想当然的写代码,能通过编译那真是运气好
[解决办法]

C/C++ code
#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;    }} 

热点排行