2.设计实现一个函数模板,实现任意数据类型的查找。
时间: 2023-06-15 17:06:44 浏览: 50
以下是一个简单的函数模板,可以实现任意数据类型的查找:
```c++
template<typename T>
int find(T arr[], int size, T target) {
for (int i = 0; i < size; i++) {
if (arr[i] == target) {
return i;
}
}
return -1;
}
```
该函数模板接受三个参数:一个数组,数组的大小,以及要查找的目标值。函数会遍历数组,如果找到目标值就返回其下标,否则返回 -1。由于使用了模板,该函数可以用于任何数据类型的数组。
相关问题
设计实现一个函数模板,实现任意数据类型的查找
下面是一个模板函数实现,用于在一个给定的数组中查找给定的值:
```cpp
template <typename T>
int search(T arr[], int size, T value) {
for (int i = 0; i < size; i++) {
if (arr[i] == value) {
return i;
}
}
return -1; // 如果未找到,返回 -1
}
```
该函数接受三个参数:一个数组,一个整数,以及一个要查找的值,返回值是该值在数组中的索引,如果未找到则返回 -1。
这个函数可以用于任何类型的数组和查找值,只要数组类型和查找值类型匹配。例如,如果要在一个整数数组中查找一个整数,可以这样调用该函数:
```cpp
int arr[] = { 1, 2, 3, 4, 5 };
int size = sizeof(arr) / sizeof(arr[0]);
int value = 3;
int index = search(arr, size, value);
```
如果要在一个字符串数组中查找一个字符串,可以这样调用该函数:
```cpp
string arr[] = { "apple", "banana", "cherry", "date", "elderberry" };
int size = sizeof(arr) / sizeof(arr[0]);
string value = "cherry";
int index = search(arr, size, value);
```
设计实现一个函数模板实现任意数据类型的查找
下面是一个函数模板示例,实现在一个数组中查找指定的元素,并返回其索引位置(如果存在):
```c++
template<typename T>
int findIndex(const T arr[], int size, const T& searchValue)
{
for(int i = 0; i < size; ++i)
{
if(arr[i] == searchValue)
return i;
}
return -1; // 如果未找到,返回 -1
}
```
这个函数模板可以接受任何数据类型的数组(包括基本类型、自定义类等),并且可以查找任何类型的元素。调用示例:
```c++
int intArray[] = {1, 2, 3, 4, 5};
double doubleArray[] = {1.1, 2.2, 3.3, 4.4, 5.5};
char charArray[] = {'a', 'b', 'c', 'd', 'e'};
int index1 = findIndex(intArray, 5, 3);
int index2 = findIndex(doubleArray, 5, 4.4);
int index3 = findIndex(charArray, 5, 'f');
std::cout << index1 << std::endl; // 输出 2
std::cout << index2 << std::endl; // 输出 3
std::cout << index3 << std::endl; // 输出 -1
```