Mam std::vector wartości. Funkcją min_element znalazłem najmniejszy element vectora. Jak zwrócić indeks tego elementu?
0
1
std::size_t index = std::distance(std::begin(vector), iterator);
Przykład:
#include <iostream>
#include <algorithm>
#include <iterator>
#include <cassert>
using namespace std;
int main() {
int data[] = { 3, 4, -2, 5 };
auto min_it = min_element(begin(data), end(data));
assert(min_it != end(data));
cout << "idx: " << distance(begin(data), min_it) << endl;
return 0;
}
0
Mam jeszcze pytanie dlaczego muszę wyświetlać różnicę min_it-data.begin()? Jak jest przechowywany iterator w komputerze?