Iterators can locate a value and turn that position back into an index for reporting.

Iterator Positions

iterator_positions.cpp
#include <iostream>
#include <algorithm>
#include <vector>

int main() {
    std::vector<int> scores{72, 85, 91, 64};
    int target = ;

    auto found = std::find(scores.begin(), scores.end(), target);
    int position = found == scores.end()
        ? -1
        : static_cast<int>(std::distance(scores.begin(), found));

    std::cout << "target=" << target << std::endl;
    std::cout << "position=" << position << std::endl;
    return 0;
}
#include <iostream>
#include <algorithm>
#include <vector>

int main() {
    std::vector<int> scores{72, 85, 91, 64};
    int target = ;

    auto found = std::find(scores.begin(), scores.end(), target);
    int position = found == scores.end()
        ? -1
        : static_cast<int>(std::distance(scores.begin(), found));

    std::cout << "target=" << target << std::endl;
    std::cout << "position=" << position << std::endl;
    return 0;
}
#include <iostream>
#include <algorithm>
#include <vector>

int main() {
    std::vector<int> scores{72, 85, 91, 64};
    int target = ;

    auto found = std::find(scores.begin(), scores.end(), target);
    int position = found == scores.end()
        ? -1
        : static_cast<int>(std::distance(scores.begin(), found));

    std::cout << "target=" << target << std::endl;
    std::cout << "position=" << position << std::endl;
    return 0;
}
iterator An iterator points at a position inside a container.
distance Subtracting random-access iterators reports how far apart two positions are.