Evoplex  0.2.1
nodes.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 NODES_H
18 #define NODES_H
19 
20 #include <unordered_map>
21 
22 #include "node.h"
23 
24 namespace evoplex {
25 
32 class Nodes : private std::unordered_map<int, Node>
33 {
34  friend class AbstractGraph;
35  friend class Experiment;
36  friend class NodesPrivate;
37 
38 public:
39  using std::unordered_map<int, Node>::at;
40  using std::unordered_map<int, Node>::begin;
41  using std::unordered_map<int, Node>::cbegin;
42  using std::unordered_map<int, Node>::end;
43  using std::unordered_map<int, Node>::cend;
44  using std::unordered_map<int, Node>::iterator;
45  using std::unordered_map<int, Node>::const_iterator;
46  using std::unordered_map<int, Node>::empty;
47  using std::unordered_map<int, Node>::size;
48 };
49 
50 } // evoplex
51 #endif // NODES_H
A collection of utility functions for creating and saving nodes.
Definition: nodes_p.h:32
A Node container.
Definition: nodes.h:32
Definition: abstractgraph.h:29
Abstract base class for graph plugins.
Definition: abstractgraph.h:54