利用函数重载,分别定义两个函数,能查找一个整数是否在一个整数数组内存在,并且查找一个字符串是否在一个字符串指针数组内,如果存在则返回所在数组元素的下标,如果不存在则返回-1,最后编写main函数进调用
时间: 2025-01-04 15:38:19 浏览: 6
利用函数重载(Function Overload),你可以创建两个功能相似但参数类型不同的函数,以便处理整数和字符串这两种情况。这里我会给出C++的一个示例:
首先,定义一个用于查找整数的函数模板,它接受一个整数和一个整数数组作为参数:
```cpp
template <typename T>
size_t findElement(T target, const T* array, size_t size) {
for (size_t i = 0; i < size; ++i) {
if (array[i] == target) {
return i;
}
}
return -1;
}
```
然后,针对字符串,我们可以定义一个额外的函数,它接受一个字符串和一个字符串指针数组:
```cpp
std::string* stringArray = nullptr; // 假设已经初始化了一个字符串指针数组
size_t stringSize;
// 函数定义
size_t findStringElement(const std::string& target, const std::string* array, size_t size) {
for (size_t i = 0; i < size; ++i) {
if (array[i] == target) {
return i;
}
}
return -1;
}
```
接下来,在`main()`函数中,你可以根据不同类型的参数调用相应的函数:
```cpp
int main() {
int myInt = 5;
std::vector<int> integerArray = {1, 2, 3, 4, 5};
size_t intIndex = findElement(myInt, &integerArray[0], integerArray.size());
if (intIndex != -1) {
std::cout << "Integer found at index: " << intIndex << std::endl;
} else {
std::cout << "Integer not found" << std::endl;
}
std::string myString = "hello";
if (stringArray) {
stringSize = ...; // 获取实际的字符串数组大小
size_t stringIndex = findStringElement(myString, stringArray, stringSize);
if (stringIndex != -1) {
std::cout << "String found at index: " << stringIndex << std::endl;
} else {
std::cout << "String not found" << std::endl;
}
}
return 0;
}
```
这个例子展示了如何通过函数重载实现查找整数和字符串的功能,注意,对于字符串数组,你需要先确保它是有效的并且获取其大小。
阅读全文