Icono
|Estudiar
TemarioProgramación en C++Tema 5

Tema 5

Structs y tipos personalizados

Patrón de examen

Cuando necesites ordenar por múltiples criterios o agrupar datos relacionados. Es más legible que índices paralelos.

Explicación

Struct en C++

Agrupa variables relacionadas bajo un nombre.

struct Punto { int x, y; };
struct Evento { int tiempo, tipo; };

Usos típicos en olimpiadas

  • Representar puntos, aristas, eventos
  • Ordenar por múltiples criterios
  • Reemplazar índices paralelos con un solo arreglo de structs

Ordenar structs

sort(v.begin(), v.end(), [](Evento a, Evento b) {
    if (a.tiempo != b.tiempo) return a.tiempo < b.tiempo;
    return a.tipo < b.tipo;
});

pair y tuple (alternativas rápidas)

pair<int,int> p = {3, 5};
cout << p.first << " " << p.second;

// pair se ordena lexicográficamente por defecto
vector<pair<int,int>> v;
sort(v.begin(), v.end()); // ordena por .first, luego .second