使用template<typename T> T* findmin(int *minIndex, T a[], int size=10);
时间: 2023-06-20 16:08:45 浏览: 82
这是一个函数模板,用于在给定的数组中查找最小值,并返回指向最小值的指针。
参数:
- minIndex:一个指向整数的指针,用于存储最小值的索引。
- a:一个模板类型为T的数组。
- size:数组的大小,默认为10。
返回值:一个指向最小值的指针,类型为T*。
函数实现:
```cpp
template<typename T>
T* findmin(int *minIndex, T a[], int size) {
if (size <= 0) {
return nullptr;
}
T* minPtr = &a[0]; // 指向第一个元素的指针
*minIndex = 0; // 初始化最小值索引
for (int i = 1; i < size; ++i) {
if (a[i] < *minPtr) {
minPtr = &a[i];
*minIndex = i;
}
}
return minPtr;
}
```
该函数的实现中,我们首先判断数组大小是否为零,如果是,则返回空指针。接着,我们初始化指向第一个元素的指针和最小值索引。然后遍历数组,如果当前元素比最小值还要小,则更新最小值指针和最小值索引。最后,返回最小值指针。
使用示例:
```cpp
int main() {
int a[] = {5, 3, 8, 2, 7, 1, 9, 4, 6, 0};
int minIndex = 0;
int* minPtr = findmin(&minIndex, a, 10);
std::cout << "最小值为:" << *minPtr << std::endl;
std::cout << "最小值的索引为:" << minIndex << std::endl;
return 0;
}
```
阅读全文