Я только что выучил Дейкстра в школе, но я хотел попытаться кодировать это. У меня проблема с итератором и меняю определенную точку в векторе, но, скорее всего, моя реализация неверна. Ошибка, которую я получаю ниже, и мне интересно, как я изменяю std :: pair на объект std :: _ vector_iterator. Кроме того, что означает _scary_val? < /P>
Моя ошибка: < /p>
Я только что выучил Дейкстра в школе, но я хотел попытаться кодировать это. У меня проблема с итератором и меняю определенную точку в векторе, но, скорее всего, моя реализация неверна. Ошибка, которую я получаю ниже, и мне интересно, как я изменяю std :: pair на объект std :: _ vector_iterator. Кроме того, что означает _scary_val? < /P> Моя ошибка: < /p> [code]no suitable conversion function from "std::pair" to "std::_Vector_iterator::value_type" (aka "Node *") exists < /code> my header file < /p> #pragma once #include #include class Node; class Graph; class Edge;
class Edge { public: Node* from; Node* to; int weight; //bool directional; Edge() = default;
Edge(Node* to, Node* from, int weight, bool directional); };
void Graph::printGraph() { //this will call Node::printConnections for (auto& Node : this->GraphNodes) { Node->printConnections(); } }
void Node::printConnections() { for (auto& Node : this->conncections) { cout name name conncections) { //goes through connections which hold edges for that node
if (std::find(visited.begin(), visited.end(), node->to) != visited.end()) continue; //this is checking if the node is already visited
auto temp = std::make_pair(node->to, node->weight + current.second); int i = 0; while (i != notVisited.size() && notVisited[i].second < temp.second) { i++; } notVisited.insert(notVisited.begin() + i, temp); //inserts the element in the right place visited.push_back(node->from); //adds it to visited
auto it = (std::find(visited.begin(), visited.end(), node->to));
Я только что выучил Дейкстра в школе, но я хотел попытаться кодировать это. У меня проблема с итератором и меняю определенную точку в векторе, но, скорее всего, моя реализация неверна. Ошибка, которую я получаю ниже, и мне интересно, как я изменяю...
Я только что выучил Дейкстра в школе, но я хотел попытаться кодировать это. У меня проблема с итератором и меняю определенную точку в векторе, но, скорее всего, моя реализация неверна. Ошибка, которую я получаю ниже, и мне интересно, как я изменяю...
Я не просматривал свою рубрику до тех пор, пока не запустил программу. Прямо сейчас все работает идеально так, как я хочу. У меня два коротких вопроса.
Я узнал в ходе многих испытаний, связанных с кодом итератора, что семантически и концептуально правильно рассматривать итератор в объект, как указатель. #include
#include
#include
#include
using std::vector;
using std::random_device;
using...