indeks elementu

0

Mam std::vector wartości. Funkcją min_element znalazłem najmniejszy element vectora. Jak zwrócić indeks tego elementu?

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;
}

http://ideone.com/7zz6wC

0

Mam jeszcze pytanie dlaczego muszę wyświetlać różnicę min_it-data.begin()? Jak jest przechowywany iterator w komputerze?

1 użytkowników online, w tym zalogowanych: 0, gości: 1