Evoplex  0.2.1
edges.h
1 /* Evoplex <https://evoplex.org>
2  * Copyright (C) 2016-present - Marcos Cardinot <marcos@cardinot.net>
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef EDGES_H
18 #define EDGES_H
19 
20 #include <unordered_map>
21 
22 #include "edge.h"
23 
24 namespace evoplex {
25 
32 class Edges : private std::unordered_map<int, Edge>
33 {
34  friend class AbstractGraph;
35  friend class DNode;
36  friend class UNode;
37 
38 public:
39  using std::unordered_map<int, Edge>::at;
40  using std::unordered_map<int, Edge>::begin;
41  using std::unordered_map<int, Edge>::cbegin;
42  using std::unordered_map<int, Edge>::end;
43  using std::unordered_map<int, Edge>::cend;
44  using std::unordered_map<int, Edge>::iterator;
45  using std::unordered_map<int, Edge>::const_iterator;
46  using std::unordered_map<int, Edge>::empty;
47  using std::unordered_map<int, Edge>::size;
48 };
49 
50 } // evoplex
51 #endif // EDGES_H
BaseNode implementation for directed nodes.
Definition: node_p.h:197
BaseNode implementation for undirected nodes.
Definition: node_p.h:170
Definition: abstractgraph.h:29
Abstract base class for graph plugins.
Definition: abstractgraph.h:54
An Edge container.
Definition: edges.h:32