Sono confuso su come ottenere gli elementi nel set. Penso di dover usare l'iteratore ma come faccio a superarlo?Come ottenere gli elementi in un set in C++?
11
A
risposta
18
Sostituire type
con, per esempio, int
.. E var
con il nome del set
for (set<type>::iterator i = var.begin(); i != var.end(); i++) {
type element = *i;
}
Il modo migliore è però di utilizzare boost::foreach. Il codice di cui sopra sarebbe semplicemente diventata:
BOOST_FOREACH(type element, var) {
/* Here you can use var */
}
Si può anche fare #define foreach BOOST_FOREACH
in modo che si può fare questo:
foreach(type element, var) {
/* Here you can use var */
}
Ad esempio:
foreach(int i, name_of_set) {
cout << i;
}
6
Utilizzare gli iteratori:
std::set<int> si;
/* ... */
for(std::set<int>::iterator it=si.begin(); it!=si.end(); ++it)
std::cout << *it << std::endl;
Si noti che molti riferimenti come MSDN e cplusplus.com fornisce esempi - one example. ;)
3
per elencare tutti gli elementi della set puoi fare qualcosa come:
#include <iostream>
#include <set>
using namespace std;
int main()
{
int myints[] = {1,2,3,4,5};
set<int> myset (myints,myints+5);
set<int>::iterator it;
cout << "myset contains:";
for (it=myset.begin() ; it != myset.end(); it++)
cout << " " << *it;
cout << endl;
return 0;
}
Per verificare se uno specifico elemento nel set o non è possibile utilizzare il metodo find() dalla classe STL impostata
2
Mi piace quello che sto vedendo in VS2010 Beta2 utilizzando la sintassi lambda C++ 0x:
std::for_each(s.begin(), s.end(),
[](int value)
{
// what would be in a function operator() goes here.
std::cout << value << std::endl;
});
0
set<int> os;
for (auto itr = os.begin(); itr != os.end() ; ++itr) cout << *itr << endl;
2
per C++ 11 e successivi:
std::set<int> my_set;
for (auto item : my_set)
std::cout << item << endl;
Problemi correlati
- 1. Come ottenere elementi casuali da un set in Swift?
- 2. Filtra gli elementi da Set in Java
- 3. Come ottenere tutti gli elementi da IMongoCollection in C#?
- 4. Ottenere "Unminminated [] set". Errore in C#
- 5. Java 8: Come confrontare tutti gli elementi di un Set
- 6. Unisci più elementi di un set in un singolo set
- 7. Sostituire gli elementi multipli stringa in C#
- 8. Come ottenere gli elementi attualmente visualizzati in AdapterView?
- 9. Come ottenere tutti gli elementi di lavoro in una iterazione?
- 10. Come ottenere tutti gli elementi con NSPredicate CONTAINS IN array
- 11. ottenere elementi comuni nelle liste in C#
- 12. Magento - Come ottenere gli elementi del carrello totale in header.phtml
- 13. Dividere un set (C++)
- 14. Ottenere tutti gli elementi iframe
- 15. Come ottenere tutti gli elementi da un ArrayAdapter
- 16. Firebird come selezionare gli ID che corrispondono a tutti gli elementi di un set
- 17. Come posso scorrere gli elementi in Hashmap?
- 18. Come ottenere gli ultimi n elementi in un array PHP come un altro array?
- 19. Come ottenere gli ultimi 5 elementi di un array php
- 20. come ottenere tutti gli elementi di un ArrayAdapter?
- 21. Come stampare elementi in un vettore C++
- 22. Come visualizzare gli elementi in due colonne in un ListView
- 23. Proprietà che espongono gli elementi dell'array in C#
- 24. come aggiornare gli elementi in un array/elenco con il driver mongo C#?
- 25. Come identificare gli elementi che vengono rimossi da set() in python?
- 26. Come restituire un set in Java
- 27. ottenere gli elementi di documento HTML in firefox addon
- 28. Sotto ARC, come posso rilasciare gli elementi in un NSArray?
- 29. Trovare gli elementi più comuni in un vettore in R
- 30. Ottenere gli elementi `std :: priority_queue` in ordine inverso?
Entrambe le risposte di seguito sono corrette, ma per essere un po 'più diretto: iteratori sono spostati in avanti o all'indietro attraverso il set di risultati utilizzando il incremento (++) e decremento (-) operatori. – Toji