Est-il possible de faire make_heap()
avec une paire dans un vecteur?std :: make_heap avec des paires
J'utilise:
std::vector< std::pair < int , tablero& > > lista_abierta_;
utiliser la fonction d'objet pour commander la paire par le premier membre, mais il se bloque.
Le code est:
#include <iostream>
#include <vector>
#include <map>
#include <cmath>
#include <algorithm>
#include <functional>
#include "8_puzzle.h"
#include "tablero.h"
using namespace std;
class comp {
public:
bool operator()(pair < int, tablero&> a, pair < int, tablero&> b) const {
return a.first > b.first;
}
};
pair < int, tablero& > puzzle::A_estrella::tope()
{
pair < int, tablero& > l=lista_abierta_.front();
pop_heap(lista_abierta_.begin(),lista_abierta_.end());
lista_abierta_.pop_back();
return l;
}
[Extrait du here]
Salut NSB, bienvenue à débordement de la pile. S'il vous plaît essayez de formater votre message selon le [guide de formatage] (http://stackoverflow.com/editing-help). Merci. – jpjacobs
Vous ne pouvez pas avoir une paire qui contient une référence à l'intérieur d'un conteneur standard, n'est-ce pas? –