读书人

有关STL的小疑点请指点

发布时间: 2012-02-25 10:01:49 作者: rapoo

有关STL的小问题,请各位高手指点
我定义一个头文件 "getIndex "
template <class T>
int GetIndex(T list[],int n,T key)
{
for(int i=0;i <n;i++)
if(list[i]==key)
return i;
else
return -1;
}

然后在main函数中调用,如下:
#include <iostream.h>
#include "getIndex.h "

void main()
{
int A[5]={1,2,3,4,5},Aindex,Bindex;
float B[4]={1.1,2.2,3.3,4.4},Bkey=2.2;
Aindex=GetIndex(A,5,3);
Bindex=GetIndex(B,4,Bkey);
cout < < "Item 3 is at index " < <Aindex < <endl;
cout < < "Item 2.2 is at index " < <Bindex < <endl;
}
运行结果为:
Item 3 is at index -1
Item 2.2 is at index -1
那么为什么结果不正确呢?
希望各位高手热情指点,感激不尽。

[解决办法]
template <class T>
int GetIndex(T list[],int n,T key)
{
for(int i=0;i <n;i++)
{
if(list[i]==key)
return i;
}
return -1;
}

[解决办法]
for(int i=0;i <n;i++)
if(list[i]==key)
return i;
else
return -1;
改成
for(int i=0;i <n;i++)
{
if (list[i]==key)
return i;
}
return -1;

读书人网 >C++

热点推荐