Wyświetlenie adresów elementów vectora w pętli

0

chciałem zrobić coś takiego ze wyszukuje w pętli w jednym wektorze najmniejsza liczbę, wpisuję ją do drugiego wektora, usuwam z pierwszego wektora wyszukana liczbę, ustawiam iterator na początek i przeszukuje od nowa pomniejszony wektor

 
#include<iostream>
#include <vector>
using namespace std;
int vmin;
int main()
{
	vector < int > daneDoSort;
	vector < int > posortowane;
	vector < int >:: iterator pmin;
	vector <int>:: iterator it;
	daneDoSort.push_back(3);// itd - załadowanie danych do vectora
	
	for (int j=0; j<daneDoSort.size(); j++)		
		{		
			for(vector <int>:: iterator it=daneDoSort.begin(); it!=daneDoSort.end(); it++)
				{				
					if (*it<vmin)
					 {
					    vmin=*it;//tu przytrzymuje wartość minimalną 
					    pmin=it;//a tu chciałbym mieć wskaźnik na tą wartość w wektorze by móc ją potem usunąć
  					     cout <<&it<<endl;//pomocniczo chce wyświetlić adresy elementów wektora 
					 }
				}

              posortowane.push_back(vmin);//wstawiamy najmniejsza w danej iteracji wartość do wektora posortowane

cout<<*it<<endl; w pętli wyświetla poprawnie wartości wektora, natomiast cout<<&it<<endl wyświetla kilka razy ten sam adres chyba początku wektora. Jak odwołać się potem do elementu o znalezionym adresie aby go usunąć?
PS przepraszam za wcześniejsze niekompletne wpisy

3

Usuwanie elementów z wektora, po którym iterujesz to dość ryzykowna sprawa.

*it to lvalue element, więc &*it to jego adres.

Jeśli koniecznie chcesz usuwać elementy podczas iteracji, to łatwiej robić to operując na indeksach.

0

dziękuje za szybka odpowiedz, popróbuję w takim razie na indeksach

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