Práctica Final. Rutas Aéreas.
ruta.h
Ir a la documentación de este archivo.
1 
10 #ifndef PRACTICAFINAL_RUTA_H
11 #define PRACTICAFINAL_RUTA_H
12 
13 #include <list>
14 #include <string>
15 #include "punto.h"
16 
17 using namespace std;
18 
19 
26 class Ruta {
27 private:
28  std::list<Punto> puntos;
29  string codigo;
30 
31 public:
32 
36  Ruta(){}
37 
43  Ruta(string codigo, const list<Punto> &puntos);
44 
49  void setCodigo(string codigo);
50 
55  void setPuntos(const list<Punto> &puntos);
56 
61  string getCodigo() const;
62 
67  const list<Punto> & getPuntos() const;
68 
73  int getNumPuntos() const;
74 
79  void insertarPunto(const Punto& p);
80 
85  void eliminarPunto(const Punto& p);
86 
87 
88  class const_iterator;
89 
93  class iterator{
94  private:
98  list<Punto>::iterator it;
99  public:
104 
109  iterator(const list<Punto>::iterator& it):it(it){}
110 
116  ++it;
117  return *this;
118  }
119 
125  --it;
126  return *this;
127  }
128 
135  bool operator==(const iterator& i){
136  return it==i.it;
137  }
138 
145  bool operator!=(const iterator& i){
146  return it!=i.it;
147  }
148 
154  return *it;
155  }
156 
157  friend class Ruta;
158  friend class const_iterator;
159  };
160 
166  iterator i;
167  i.it=puntos.begin();
168  return i;
169  }
170 
176  iterator i;
177  i.it=puntos.end();
178  return i;
179  }
180 
185  private:
189  list<Punto>::const_iterator it;
190  public:
195 
200  const_iterator(const list<Punto>::const_iterator& it):it(it){}
201 
207  ++it;
208  return *this;
209  }
210 
216  --it;
217  return *this;
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 
244  const Punto& operator*(){
245  return *it;
246  }
247  friend class Ruta;
248  };
249 
255  const_iterator i;
256  i.it=puntos.begin();
257  return i;
258  }
259 
265  const_iterator i;
266  i.it=puntos.end();
267  return i;
268  }
269 
270 
271  friend ostream& operator<<(ostream& os, const Ruta& r);
272  friend istream& operator>>(istream& is, Ruta& r);
273 };
274 
275 
282 ostream& operator<<(ostream& os, const Ruta& r);
283 
290 istream& operator>>(istream& is, Ruta& r);
291 
292 
293 #endif //PRACTICAFINAL_RUTA_H
TDA Punto.
Definition: punto.h:23
Clase iterador constante de la clase ruta.
Definition: ruta.h:184
const_iterator()
Constructor por defecto.
Definition: ruta.h:194
const_iterator(const list< Punto >::const_iterator &it)
Constructor de la clase.
Definition: ruta.h:200
bool operator==(const const_iterator &i)
Operador de igualdad.
Definition: ruta.h:226
const_iterator & operator++()
Operador de incremento.
Definition: ruta.h:206
const Punto & operator*()
Operador de acceso.
Definition: ruta.h:244
const_iterator & operator--()
Operador de decremento.
Definition: ruta.h:215
bool operator!=(const const_iterator &i)
Operador de desigualdad.
Definition: ruta.h:236
Clase iterador de la clase ruta.
Definition: ruta.h:93
bool operator==(const iterator &i)
Operador de igualdad.
Definition: ruta.h:135
bool operator!=(const iterator &i)
Operador de desigualdad.
Definition: ruta.h:145
Punto & operator*()
Operador de acceso.
Definition: ruta.h:153
iterator()
Constructor por defecto.
Definition: ruta.h:103
iterator(const list< Punto >::iterator &it)
Constructor de la clase.
Definition: ruta.h:109
iterator & operator++()
Operador de incremento.
Definition: ruta.h:115
iterator & operator--()
Operador de decremento.
Definition: ruta.h:124
TDA Ruta.
Definition: ruta.h:26
Ruta()
Constructor por defecto de la clase.
Definition: ruta.h:36
iterator begin()
Devuelve un iterador al principio de la lista de puntos.
Definition: ruta.h:165
iterator end()
Devuelve un iterador al final de la lista de puntos.
Definition: ruta.h:175
const_iterator end() const
Devuelve un iterador constante al final de la lista de puntos.
Definition: ruta.h:264
const_iterator begin() const
Devuelve un iterador constante al principio de la lista de puntos.
Definition: ruta.h:254
Fichero cabecera del TDA Punto.
ostream & operator<<(ostream &os, const Ruta &r)
Sobrecarga del operador de salida.
Definition: ruta.cpp:46
istream & operator>>(istream &is, Ruta &r)
Sobrecarga del operador de entrada.
Definition: ruta.cpp:57