@@ -14,12 +14,10 @@ namespace Graph {
1414/*
1515 An abstract base class for undirected and directed networks.
1616*/
17- template <typename AgentType, typename WeightType = double > class NetworkBase {
17+ template <typename WeightType = double > class NetworkBase {
1818public:
1919 using WeightT = WeightType;
20- using AgentT = AgentType;
21- // @TODO: Make this private later
22- std::vector<AgentT> agents{}; // List of agents of type AgentType
20+
2321protected:
2422 std::vector<std::vector<size_t >>
2523 neighbour_list{}; // Neighbour list for the connections
@@ -30,31 +28,22 @@ template <typename AgentType, typename WeightType = double> class NetworkBase {
3028 NetworkBase () = default ;
3129
3230 NetworkBase (size_t n_agents)
33- : agents(std::vector<AgentT>(n_agents)),
34- neighbour_list (
31+ : neighbour_list(
3532 std::vector<std::vector<size_t >>(n_agents, std::vector<size_t >{})),
3633 weight_list (std::vector<std::vector<WeightT>>(n_agents,
3734 std::vector<WeightT>{})) {
3835 }
3936
40- NetworkBase (std::vector<AgentT> agents)
41- : agents(agents), neighbour_list(std::vector<std::vector<size_t >>(
42- agents.size(), std::vector<size_t>{})),
43- weight_list (std::vector<std::vector<WeightT>>(agents.size(),
44- std::vector<WeightT>{})) {
45- }
46-
4737 NetworkBase (std::vector<std::vector<size_t >> &&neighbour_list,
4838 std::vector<std::vector<WeightT>> &&weight_list)
49- : agents(std::vector<AgentT>(neighbour_list.size())),
50- neighbour_list (neighbour_list), weight_list(weight_list) {}
39+ : neighbour_list(neighbour_list), weight_list(weight_list) {}
5140
5241 virtual ~NetworkBase () = default ;
5342
5443 /*
5544 Gives the total number of nodes in the network
5645 */
57- [[nodiscard]] std::size_t n_agents () const { return agents .size (); }
46+ [[nodiscard]] std::size_t n_agents () const { return neighbour_list .size (); }
5847
5948 /*
6049 Gives the number of edges connected to agent_idx
0 commit comments