CoxIter  1.3
CoxIter - Computing invariants of hyperbolic Coxeter groups
graphs.list.n.h
Go to the documentation of this file.
1 /*
2 Copyright (C) 2013-2017
3 Rafael Guglielmetti, rafael.guglielmetti@unifr.ch
4 */
5 
6 /*
7 This file is part of CoxIter.
8 
9 CoxIter is free software: you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as
11 published by the Free Software Foundation, either version 3 of the
12 License, or (at your option) any later version.
13 
14 CoxIter is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
18 
19 You should have received a copy of the GNU General Public License
20 along with CoxIter. If not, see <http://www.gnu.org/licenses/>.
21 */
22 
23 #ifndef GRAPHS_LIST_N_H
24 #define GRAPHS_LIST_N_H
25 
26 #include "graph.h"
27 
28 #include <algorithm>
29 #include <iterator>
30 #include <vector>
31 
32 using namespace std;
33 
41 class GraphsListN {
42 private:
43  vector<Graph> graphs;
44  unsigned int verticesCount;
45 
46  vector<string>
48 
49 public:
50  GraphsListN(unsigned int verticesCount,
51  vector<string> *ptr_map_vertices_indexToLabel);
52 
65  void addGraph(vector<short unsigned int> vertices,
66  const vector<bool> &linkableVertices, const unsigned &type,
67  bool isSpherical, const short unsigned int &vertexSupp1 = 0,
68  const short unsigned int &vertexSupp2 = 0,
69  const unsigned int &dataSupp = 0);
70 
77  bool addGraphsList(const GraphsListN &gln);
78 
83  size_t size() const;
84 
89  Graph *begin();
90 
96  Graph *next(const size_t &graphIndex);
97 
104  unsigned int get_verticesCount() const;
105 
111  vector<Graph> get_graphs() const;
112 
113 public:
114  friend ostream &operator<<(ostream &, GraphsListN const &);
115 };
116 
117 #endif // GRAPHS_LIST_N_H
This class represents one graph.
Definition: graph.h:42
Liste des graphes d'une taille donnée.
Definition: graphs.list.n.h:41
vector< string > * ptr_map_vertices_indexToLabel
Pointeur vers la correspondance.
Definition: graphs.list.n.h:47
unsigned int verticesCount
Nombre de sommets des graphes de la liste.
Definition: graphs.list.n.h:44
vector< Graph > graphs
Liste des graphes trouvés.
Definition: graphs.list.n.h:43
ostream & operator<<(ostream &o, const Graph &g)
Definition: graph.cpp:36