192    std::vector<Node<V>*> thing;
 
  197    std::vector<bool> visited;
 
  198    visited.resize(nodes.size());
 
  199    double distances[nodes.size()];
 
  201    for(
int filler = 0; filler < nodes.size(); filler++) {
 
  203        distances[filler] = UINT_MAX;
 
  207    std::priority_queue<pair, std::vector<pair>, 
CustomCompare> queue;
 
  208    std::vector<Node<V>*> temp;
 
  209    temp.push_back(from);
 
  210    queue.push(std::pair<
double, std::vector<
Node<V>*>>(0, temp));
 
  211    uint64_t iterations = 0;
 
  213    while (!queue.empty()) {
 
  216        std::vector<Node<V>*> path = queue.top().second;        
 
  217        Node<V> *curr = path[path.size() - 1];
 
  218        double currentDistance = queue.top().first;
 
  221        visited[nodeMap.at(curr)] = 1;
 
  225            std::cout << iterations << std::endl;
 
  229        std::vector<Node<V>*> adj = getAdj(curr);
 
  231        for (
int looper = 0; looper < adj.size(); looper++) {
 
  232            std::vector<Node<V>*> possiblePath;
 
  233            for (
int i = 0; i < path.size(); i++) {
 
  234                possiblePath.push_back(path[i]);
 
  237            if (!visited[nodeMap.at(adj[looper])] && currentDistance + matrix[nodeMap.at(curr)][nodeMap.at(adj[looper])] < distances[nodeMap.at(adj[looper])]) {
 
  238                distances[nodeMap.at(adj[looper])] = currentDistance + matrix[nodeMap.at(curr)][nodeMap.at(adj[looper])];
 
  239                possiblePath.push_back(adj[looper]);
 
  240                queue.push(std::pair<
double, std::vector<
Node<V>*>>(currentDistance + matrix[nodeMap.at(curr)][nodeMap.at(adj[looper])], possiblePath));
 
  249    std::cout << iterations << std::endl;