Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Como ordenar listas por dos criterios?

Estas en el tema de Como ordenar listas por dos criterios? en el foro de C/C++ en Foros del Web. Hola que tal ! Estoy haciendo un trabajo para la facultad y donde tengo un archivo con una serie de datos: 1. Codigo de producto ...
  #1 (permalink)  
Antiguo 19/01/2015, 20:57
 
Fecha de Ingreso: noviembre-2014
Mensajes: 13
Antigüedad: 9 años, 5 meses
Puntos: 0
Exclamación Como ordenar listas por dos criterios?

Hola que tal !
Estoy haciendo un trabajo para la facultad y donde tengo un archivo con una serie de datos:
1. Codigo de producto (long)
2. Modelo de pertenencia (int)

Se solicita hacer un programa para ordenar el archivo por Modelo de pertenencia y código de producto.

La idea que planteo el profesor es, en una lista, que cada nodo contengan esos dos datos. Primero ordenarlo por modelo de pertenencia (los modelos de pertenencia se repiten algunos) y luego por codigo de producto.

EJEMPLO:

Modelo de pertenencia codigo de producto
1 223312
1 123264
2 632673
3 534234
3 236643
3 235634


Gracias por su ayuda, se los agradezco !
  #2 (permalink)  
Antiguo 20/01/2015, 01:36
lareto
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Como ordenar listas por dos criterios?

En C++ puede hacerse en tres líneas de código. Te queda leer los pares desde tu archivo, y explicártelo como para que puedas explicarlo a otros:
Código C++:
Ver original
  1. #include <iostream>
  2. #include <set>
  3. #include <utility>
  4.  
  5. int main()
  6. {
  7.     std::set<std::pair<int,long>> lista {
  8.         {1, 223312},
  9.         {1, 123264},
  10.         {2, 632673},
  11.         {3, 534234},
  12.         {3, 236643},
  13.         {3, 235634}
  14.     };
  15.  
  16.     for(const auto& i : lista)
  17.         std::cout << i.first << ", " << i.second << '\n';
  18. }

Etiquetas: int, lista, listas, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:04.