No estoy seguro de cómo obtener los elementos en el conjunto. Creo que tengo que usar el iterador, pero ¿cómo lo paso?¿Cómo obtener los elementos en un conjunto en C++?
11
A
Respuesta
18
Reemplazar type
con, por ejemplo, int
.. Y var
con el nombre del conjunto de
for (set<type>::iterator i = var.begin(); i != var.end(); i++) {
type element = *i;
}
La mejor manera sin embargo es utilizar boost::foreach. El código anterior podría ser simplemente:
BOOST_FOREACH(type element, var) {
/* Here you can use var */
}
También se puede hacer #define foreach BOOST_FOREACH
de modo que usted puede hacer esto:
foreach(type element, var) {
/* Here you can use var */
}
Por ejemplo:
foreach(int i, name_of_set) {
cout << i;
}
6
Use iteradores:
std::set<int> si;
/* ... */
for(std::set<int>::iterator it=si.begin(); it!=si.end(); ++it)
std::cout << *it << std::endl;
en cuenta que muchas referencias como MSDN y cplusplus.com proporciona ejemplos - one example. ;)
3
para enumerar todos los elementos de la establecer que puede hacer algo como:
#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;
}
Para comprobar si un elemento específico en el conjunto o no puede utilizar el método find() del conjunto de la clase STL
2
Me está gustando lo que estoy viendo en VS2010 Beta2 usando la sintaxis lambda de 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
para C++ 11 y más recientes:
std::set<int> my_set;
for (auto item : my_set)
std::cout << item << endl;
Cuestiones relacionadas
- 1. obtener; conjunto; sintaxis en C#
- 2. Dividir un conjunto (C++)
- 3. Obtener el número total de elementos en el conjunto
- 4. ¿Cómo imprimo los elementos de un vector C++ en GDB?
- 5. Obtenga todos los elementos LI en el conjunto
- 6. Cómo obtener los primeros n elementos de un estándar :: map
- 7. Obtener todos los elementos de opciones seleccionados de todos los elementos seleccionados en un formulario
- 8. Obtener todos los elementos de un ArrayAdapter
- 9. Crear un conjunto de cadenas de elementos marcados en check-list-box en C#
- 10. ¿Cómo guardar los elementos cargados en un repetidor?
- 11. {obtener; conjunto; } utilizado en ViewModel
- 12. elementos de desplazamiento en el conjunto
- 13. C# cómo puedo obtener todos los nombres de los elementos de un archivo XML
- 14. Anexar elementos de un conjunto a una lista en Python
- 15. ¿Cómo elimino elementos en un conjunto de índices en un vector en MATLAB?
- 16. ¿Cómo obtener los primeros n elementos de Hash en ruby?
- 17. ¿Cómo obtener los primeros n elementos (en términos de frecuencia) de un vector en R?
- 18. Cómo obtener los datos en ComboBox C#
- 19. obtener información sobre un conjunto
- 20. ¿Cómo obtener los primeros X elementos?
- 21. Obtener todos los miembros en el conjunto ordenado
- 22. ¿Cómo obtener los últimos 25 elementos de un SortedSet?
- 23. cómo obtener los elementos secundarios de un elemento WPF
- 24. Eliminar elementos del conjunto en Java
- 25. En TFS, ¿cómo puedo corregir los enlaces a los elementos de trabajo en un conjunto de cambios existente
- 26. HierarchyID Cómo obtener todos los elementos principales de un hijo
- 27. Obtener todos los elementos iframe
- 28. En ARC, ¿cómo puedo liberar los elementos en un NSArray?
- 29. obtener elementos comunes en las listas en C#
- 30. Invertir orden de un conjunto de elementos
Ambas respuestas a continuación son correctos, pero para ser un poco más directo: los iteradores se mueven hacia adelante o hacia atrás a través del conjunto de resultados utilizando el incremento (++) y decremento (-) operadores. – Toji