Как проверить на совпадение priority_queue

Всем добра! Пытаюсь перенести функцию поиска пути по точкам из c# который хорошо работает в юнити. В с++ не силен, проблема которую ни как не могу решить, как проверить на совпадение priority_queue? В с# используется SortedList, как я понял аналог этому в с++ является priority_queue, но он не имеет такой проверки. Перерыл весь гугл, так и не нашел способа или чем заменить.

TArray<FVector> UWaypointsPathfinding::GetPath(UWaypoint* startNode, UWaypoint* goalNode)
        {
            UWaypoint* beginNode = startNode;
            priority_queue<UWaypoint*, vector<UWaypoint*>, Compare> openList;
            vector<UWaypoint*> closedList;

            openList.push(startNode);
            startNode->previous = nullptr;
            startNode->distance = 0;

            while (!openList.empty())
            {
                startNode = openList.top();
                openList.pop();

                float dist = startNode->distance;
                closedList.push_back(startNode);
                if(startNode == goalNode) break;

                int l = startNode->nearest.Num();
                for (int i = 0; i < l; i++)
                {
                    UWaypoint* node = startNode->nearest[i]->FindComponentByClass<UWaypoint>();

                __нужно добавить такой же поиск на совпадение для openList (priority_queue)__
                if(find(closedList.begin(),closedList.end(),node) != closedList.end()) <--- сюда
                  continue;

                node->previous = startNode;
                node->distance = dist + FVector::Dist(node->GetOwner()->GetActorLocation(), startNode->GetOwner()->GetActorLocation());
                node->distance += FVector::Dist(node->GetOwner()->GetActorLocation(), goalNode->GetOwner()->GetActorLocation());
                openList.push(node);
            }


        }

        return TArray<FVector>();
    }

Ответы (0 шт):