Come eseguire iterate: set?

Ho questo codice:

std::set::iterator it; for (it = SERVER_IPS.begin(); it != SERVER_IPS.end(); ++it) { u_long f = it; // error here } 

Non c’è ->first valore. Come posso ottenere il valore?

Devi recuperare l’iteratore per recuperare il membro del tuo set.

 std::set::iterator it; for (it = SERVER_IPS.begin(); it != SERVER_IPS.end(); ++it) { u_long f = *it; // Note the "*" here } 

Se si dispone di funzionalità C ++ 11, è ansible utilizzare un ciclo for-range :

 for(auto f : SERVER_IPS) { // use f here } 

Basta usare il * prima di it :

  set::iterator it; for (it = myset.begin(); it != myset.end(); ++it) { cout << *it; } 

Questo lo denota e ti consente di accedere all'elemento su cui è in funzione l'iteratore.

Un altro esempio per lo standart C ++ 11:

 set data; data.insert(4); data.insert(5); for (const int &number : data) cout << number; 

Questa è una soluzione completa alla domanda:

Come si fa a scorrere std :: set?

 int main(int argc,char *argv[]) { std::set mset; mset.insert(1); mset.insert(2); mset.insert(3); for ( auto it = mset.begin(); it != mset.end(); it++ ) std::cout << *it; }