編譯並運行我的代碼;如果您使用整數或浮點數與小數值比較結果。爲什麼有差異?結果泛型函數中int和float之間的差異
這裏是我的代碼:
#include <iostream>
using namespace std;
template<class T>
T find(T array[], T len, T num){
for (int i = 0; i < len; ++i){
if (array[i] == num)
return i;
}
return -1;
}
int main() {
int array1[5] = { 4, 7, 3, 5, 6 }, num1;
float array2[5] ={121.2, 111.5, 300.1, 500.1, 600.1 }, num2;
cout << "Enter an int:" << " " ;
cin >> num1;
cout << "Enter a float:" << " " ;
cin >> num2;
int x = find<int>(array1,5,num1);
float y= find<float>(array2,5,num2);
cout << "The index for the int is:" << " " << x << endl;
cout << "The index for the float is:" << " " << y << endl;
return 0;
}
使用int和使用浮點數時,當我找不到這兩個結果之間的差異。
爲什麼LEN爲T?應該是size_t ... 而返回類型是一個索引,所以它也應該是不同的.. ptrdiff_t,我會說,或者int如果你不喜歡ptrdiff_t – 2013-05-10 07:33:48
你是什麼意思「有什麼區別」? – 2013-05-10 07:35:49
另外,你會期望什麼區別?模板函數,一旦你調整長度和索引類型的類型,應該適用於定義了operator ==的任何數據類型... – 2013-05-10 07:36:58