Hola,
Sabeis como puedo ordenar una lista stl que contiene un struct por un campo determinado.?
Gracias.
| |||
Respuesta: ordenacion de lista stl de struct Lo más simple es que definas el operador "<" en tu struct y utilices el método sort de la clase list:
Código C++:
Ver original |
| |||
Respuesta: ordenacion de lista stl de struct Pero el quiere ordenarla por un campo determinado aqui puedes ver algo parecido que hice pero con una lista de objetos. Basicamente es definir una estructura que evalue la comparación: https://github.com/adrigm/Generic-Game-Engine/blob/master/src/GGE/Core/Scene.cpp |
| |||
Respuesta: ordenacion de lista stl de struct Ok, ambas formas están bien. El método sort de la clase list está sobrecargado, bien puede utilizarse sin parámetros:
Código C++:
Que es como lo propuse, para ello los objetos contenidos deben tener definido el operador "<" (finalmente la comparación la podemos definir utilizando un campo, dos, otra cosa, etc.). Por eso mencionaba que puede verse como la forma simple ya que no hay necesidad de crear un predicado externo, que es la otra forma de utilizar sort en un list:Ver original
Código C++:
Ver original Donde comp es un predicado binario (función que recibe dos elementos como parámetros y retorna un booleano), bien se puede utilizar una función objeto (tambien conocido como Functor) como lo utiliza adrigm; o bien, un puntero a una función. |
Etiquetas: |