Práctica Final. Rutas Aéreas.
almacenRutas.h
Ir a la documentación de este archivo.
1 
10 #ifndef PRACTICAFINAL_ALMACENRUTAS_H
11 #define PRACTICAFINAL_ALMACENRUTAS_H
12 
13 #include <map>
14 #include <string>
15 #include <iostream>
16 #include "ruta.h"
17 
18 using namespace std;
19 
28 class AlmacenRutas {
29 private:
35  map<string, Ruta> rutas;
36 
37 public:
38 
43 
48  AlmacenRutas(const map<string, Ruta> &rutas);
49 
56  const Ruta& getRuta(string codigo);
57 
64  bool existeRuta(string codigo);
65 
70  void insertarRuta(const Ruta &ruta);
71 
76  void eliminarRuta(string codigo);
77 
82  int getNumRutas() const;
83 
84  class const_iterator;
85 
89  class iterator {
90  private:
91  map<string, Ruta>::iterator it;
92  public:
96  iterator() {}
97 
102  iterator(map<string, Ruta>::iterator it) : it(it) {}
103 
109  ++it;
110  return *this;
111  }
112 
118  --it;
119  return *this;
120  }
121 
127  return it->second;
128  }
129 
135  bool operator==(const iterator &i) {
136  return it == i.it;
137  }
138 
144  bool operator!=(const iterator &i) {
145  return it != i.it;
146  }
147 
148  friend class AlmacenRutas;
149  friend class const_iterator;
150  };
151 
157  iterator i;
158  i.it = rutas.begin();
159  return i;
160  }
161 
167  iterator i;
168  i.it = rutas.end();
169  return i;
170  }
171 
176  private:
180  map<string, Ruta>::const_iterator it;
181  public:
182 
187 
192  const_iterator(const map<string, Ruta>::const_iterator &it) : it(it) {}
193 
199  ++it;
200  return *this;
201  }
202 
208  --it;
209  return *this;
210  }
211 
216  const Ruta &operator*() {
217  return it->second;
218  }
219 
226  bool operator==(const const_iterator &i) {
227  return it == i.it;
228  }
229 
236  bool operator!=(const const_iterator &i) {
237  return it != i.it;
238  }
239 
240  friend class AlmacenRutas;
241  };
242 
248  const_iterator i;
249  i.it = rutas.begin();
250  return i;
251  }
252 
257  const_iterator end() const {
258  const_iterator i;
259  i.it = rutas.end();
260  return i;
261  }
262 
263  friend ostream & operator<<(ostream & os, const AlmacenRutas& ar);
264  friend istream & operator>>(istream & is, AlmacenRutas& ar);
265 };
266 
273 ostream & operator<<(ostream& os, const AlmacenRutas& ar);
274 
281 istream & operator>>(istream& is, AlmacenRutas& ar);
282 
283 
284 #endif //PRACTICAFINAL_ALMACENRUTAS_H
ostream & operator<<(ostream &os, const AlmacenRutas &ar)
Sobrecarga del operador de salida para la clase AlmacenRutas.
istream & operator>>(istream &is, AlmacenRutas &ar)
Sobrecarga del operador de entrada.
Clase iterador constante de la clase AlmacenRutas.
Definition: almacenRutas.h:175
const_iterator & operator--()
Sobrecarga del operador de decremento.
Definition: almacenRutas.h:207
const_iterator(const map< string, Ruta >::const_iterator &it)
Constructor de la clase.
Definition: almacenRutas.h:192
bool operator==(const const_iterator &i)
Sobrecarga del operador de igualdad.
Definition: almacenRutas.h:226
const_iterator()
Constructor por defecto de la clase.
Definition: almacenRutas.h:186
const Ruta & operator*()
Sobrecarga del operador de acceso.
Definition: almacenRutas.h:216
bool operator!=(const const_iterator &i)
Sobrecarga del operador de desigualdad.
Definition: almacenRutas.h:236
const_iterator & operator++()
Sobrecarga del operador de incremento.
Definition: almacenRutas.h:198
Clase iterador de la clase AlmacenRutas.
Definition: almacenRutas.h:89
bool operator!=(const iterator &i)
Sobrecarga del operador de comparación.
Definition: almacenRutas.h:144
iterator & operator++()
Sobrecarga del operador de incremento.
Definition: almacenRutas.h:108
Ruta & operator*()
Sobrecarga del operador de acceso.
Definition: almacenRutas.h:126
bool operator==(const iterator &i)
Sobrecarga del operador de comparación.
Definition: almacenRutas.h:135
iterator()
Constructor por defecto de la clase.
Definition: almacenRutas.h:96
iterator & operator--()
Sobrecarga del operador de decremento.
Definition: almacenRutas.h:117
iterator(map< string, Ruta >::iterator it)
Constructor de la clase.
Definition: almacenRutas.h:102
TDA AlmacenRutas.
Definition: almacenRutas.h:28
const_iterator end() const
Devuelve un iterador constante al final del mapa.
Definition: almacenRutas.h:257
const_iterator begin() const
Devuelve un iterador constante al principio del mapa.
Definition: almacenRutas.h:247
iterator begin()
Devuelve un iterador al principio del mapa.
Definition: almacenRutas.h:156
iterator end()
Devuelve un iterador al final del mapa.
Definition: almacenRutas.h:166
AlmacenRutas()
Constructor por defecto de la clase.
Definition: almacenRutas.h:42
TDA Ruta.
Definition: ruta.h:26
Fichero cabecera del TDA Ruta.