用C++编写你的第一个模板函数。template <typename T, int n> int getIndex (T a[], T x) 返回长度为 n 的数组 a 中 x 第一个出现的位置(下标)—— 若 x 在 a 中没有出现,则返回 -1。
时间: 2024-10-14 17:16:53 浏览: 14
cpp代码-模板 泛型 template<typename> template<class>
在C++中,模板函数允许我们编写一次通用的代码,适用于多种数据类型。下面是一个简单的模板函数 `getIndex` 示例,它接受一个动态大小的数组 `a` 和一个元素 `x`,并查找 `x` 在数组中的索引。如果 `x` 没有出现在数组中,函数将返回 `-1`。
```cpp
#include <iostream>
// 模板函数 definition
template <typename T, int n>
int getIndex(T a[], T x) {
for (int i = 0; i < n; ++i) {
if (a[i] == x) {
return i;
}
}
// 如果 x 没找到,返回 -1
return -1;
}
// 测试模板函数的示例
int main() {
int arr[] = {1, 2, 3, 4, 5};
std::cout << getIndex<int, 5>(arr, 3); // 输出 2,因为 3 在数组中的位置是 2
double dArr[] = {1.0, 2.0, 3.0, 4.0, 5.0};
std::cout << getIndex<double, 5>(dArr, 3.0); // 输出 2,同样,3.0 在数组中的位置也是 2
char cArr[] = {'a', 'b', 'c', 'd', 'e'};
std::cout << getIndex<char, 5>(cArr, 'c'); // 输出 2,字符 'c' 的位置是 2
return 0;
}
```
阅读全文