📌  相关文章
📜  如何在C++中的数组中找到数字的最后一个索引(1)

📅  最后修改于: 2023-12-03 15:38:31.394000             🧑  作者: Mango

如何在C++中的数组中找到数字的最后一个索引

在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++中的数组中找到数字的最后一个索引的三种方法。