二分查找c++代码 模板进行份文件编写
时间: 2023-07-23 14:00:02 浏览: 45
以下是使用模板进行二分查找的C++代码示例:
```cpp
#include <iostream>
#include <vector>
template <typename T>
int binarySearch(const std::vector<T>& arr, T target) {
int left = 0;
int right = arr.size() - 1;
while (left <= right) {
int mid = left + (right - left) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1; // 表示未找到目标元素
}
int main() {
std::vector<int> nums = {1, 3, 5, 7, 9, 11};
int target = 7;
int result = binarySearch(nums, target);
if (result != -1) {
std::cout << "目标元素 " << target << " 的索引位置为: " << result << std::endl;
} else {
std::cout << "未找到目标元素 " << target << std::endl;
}
return 0;
}
```
在这个示例中,我们定义了一个模板函数 `binarySearch`,接受一个类型为 `T` 的向量 `arr` 和要查找的目标元素 `target`。在函数中,我们使用二分查找算法来搜索目标元素的索引位置。如果找到目标元素,则返回其索引;否则返回 -1 表示未找到。
在 `main` 函数中,我们创建一个整