📅  最后修改于: 2023-12-03 15:38:31.394000             🧑  作者: Mango
在C++中,要在数组中找到数字的最后一个索引,可以使用以下方法:
使用for循环遍历数组,从后往前查找,找到第一个等于要查找的数字的元素,返回其索引。
int lastIndexOf(int arr[], int num, int size) {
for (int i = size - 1; i >= 0; i--) {
if (arr[i] == num) {
return i;
}
}
return -1; // 没有找到时返回-1
}
使用标准库中的std::find_end
函数,可以在数组中查找最后一次出现要查找的数字的位置。
#include <algorithm>
int lastIndexOf(int arr[], int num, int size) {
int* ptr = std::find_end(arr, arr + size, &num, &num + 1);
if (ptr == arr + size) { // 没有找到时返回-1
return -1;
}
else {
return ptr - arr;
}
}
使用标准库中的std::reverse_iterator
以及std::find
函数,反向遍历数组,查找最后一次出现要查找的数字的位置。
#include <algorithm>
int lastIndexOf(int arr[], int num, int size) {
auto it = std::find(std::reverse_iterator<int*>(arr + size), std::reverse_iterator<int*>(arr), num);
if (it == std::reverse_iterator<int*>(arr)) { // 没有找到时返回-1
return -1;
}
else {
return std::distance(it, std::reverse_iterator<int*>(arr + size - 1));
}
}
以上就是在C++中的数组中找到数字的最后一个索引的三种方法。