graph.hpp (812B)
1 #pragma once 2 3 #include <cstddef> 4 #include <cstdint> 5 #include <string> 6 #include <unordered_map> 7 #include <vector> 8 #include "edge.hpp" 9 #include "vertex.hpp" 10 11 class Graph { 12 private: 13 std::unordered_map<std::size_t, std::vector<Edge>> edges {}; 14 std::vector<Vertex> vertices {}; 15 public: 16 // based on the edgeCount and vertCount, random edges and vertices will be created. 17 Graph(std::size_t edgeCount, std::size_t vertCount, uint32_t xMax, uint32_t yMax); 18 std::string toString() noexcept; 19 void render() noexcept; 20 void traverseVertexIdx(std::size_t idx); 21 std::vector<Edge> getEdgesOfVertexIdx(std::size_t idx); 22 void setEdgeTraversed(Edge e); 23 Vertex getVertex(std::size_t idx); 24 std::size_t getVertexCount() const noexcept; 25 };