Práctica Final. Rutas Aéreas.
paises.cpp
Ir a la documentación de este archivo.
1 
10 #include "paises.h"
11 #include <sstream>
12 
13 const string CAD_MAGS[4] = {"# Latitud", "Longitud", "Pais", "Bandera"};
14 
15 Paises::Paises(const set<Pais> &paises) {
16  datos = paises;
17 }
18 
19 int Paises::size() const {
20  return datos.size();
21 }
22 
23 const set<Pais>& Paises::getDatos() const {
24  return datos;
25 }
26 
27 void Paises::insertar(const Pais &pais) {
28  datos.insert(pais);
29 }
30 
31 void Paises::eliminar(const Pais &pais) {
32  datos.erase(pais);
33 }
34 
35 void Paises::clear() {
36  datos.clear();
37 }
38 
39 Paises::iterator Paises::find(const Pais &pais) const {
40  return datos.find(pais);
41 }
42 
43 Paises::iterator Paises::find(const Punto &punto) const {
45  for (it = this->begin(); it != this->end(); ++it) {
46  if ((*it).getPunto()==punto) {
47  return it;
48  }
49  }
50  return this->end();
51 }
52 
53 
54 ostream &operator<<(ostream &os, const Paises &paises) {
55 
56  for (int i = 0; i < 4; i++) {
57  os << CAD_MAGS[i] << "\t";
58  }
59  os << endl;
60 
62  for (it = paises.begin(); it != paises.end(); ++it) {
63  os << *it << endl;
64  }
65  return os;
66 }
67 
68 istream& operator>>(istream& is, Paises& paises) {
69  double longitud, latitud;
70  string nombre, bandera;
71 
72  // Leer una línea del archivo
73  string line;
74  while (getline(is, line)) {
75  if (line.empty() || line[0] == '#') {
76  continue; // Salta las líneas de comentarios o vacías
77  }
78 
79  // Utilizar un stringstream para extraer campos
80  istringstream iss(line);
81  // Leer los campos uno por uno
82  iss >> latitud >> longitud >> nombre >> bandera;
83 
84  // Creamos un objeto Pais y lo añadimos al conjunto
85  // de paises
86  Punto point(latitud, longitud);
87  Pais pais(nombre, bandera, point);
88  paises.insertar(pais);
89  }
90  return is;
91 }
92 
TDA Pais.
Definition: pais.h:23
Clase iterator.
Definition: paises.h:76
TDA Paises.
Definition: paises.h:23
iterator begin() const
Devuelve un iterador al principio del conjunto.
Definition: paises.h:139
void eliminar(const Pais &pais)
Elimina un pais del conjunto.
Definition: paises.cpp:31
iterator find(const Pais &pais) const
Busca un pais en el conjunto.
Definition: paises.cpp:39
Paises()
Constructor por defecto de la clase.
Definition: paises.h:34
iterator end() const
Devuelve un iterador al final del conjunto.
Definition: paises.h:145
const set< Pais > & getDatos() const
Devuelve el conjunto de paises.
Definition: paises.cpp:23
void clear()
Elimina todos los paises del conjunto.
Definition: paises.cpp:35
void insertar(const Pais &pais)
Inserta un nuevo pais en el conjunto.
Definition: paises.cpp:27
int size() const
Devuelve el numero de paises.
Definition: paises.cpp:19
TDA Punto.
Definition: punto.h:23
istream & operator>>(istream &is, Paises &paises)
Sobrecarga del operador << para la clase Paises.
Definition: paises.cpp:68
ostream & operator<<(ostream &os, const Paises &paises)
Sobrecarga del operador >> para la clase Paises.
Definition: paises.cpp:54
Fichero cabecera del TDA Paises.