Sto provando a creare un unordered_map per mappare le coppie con numeri interi.unordered_map con coppia come chiave - non compilato
#include <unordered_map>
using namespace std;
using Vote = pair<string, string>;
using Unordered_map = unordered_map<Vote, int>;
Ho una classe in cui ho dichiarato Unordered_map come membro privato.
Tuttavia, sto ottenendo questo errore quando provo a compilare:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:948:38: Implicit instantiation of undefined template 'std::__1::hash<std::__1::pair<std::__1::basic_string<char>, std::__1::basic_string<char> > >'
non sto ottenendo questo errore se uso una mappa regolare come map<pair<string, string>, int>
invece di un unordered_map.
Non è possibile utilizzare pair
come chiave nelle mappe non ordinate?
Per evitare errori di compilazione, questo 'operatore personalizzato() (...)' deve essere dichiarato come funzione ** const ** (è stato confuso con gcc-5.2.1, dichiarazione corretta nell'altra risposta di seguito): 'std: : size_t operator() (smth const & p) const {...} ' – Trollliar
@Trollliar Grazie, risolto. –
Si fa riferimento a 'hash_value' ma il collegamento va a' hash'. Penso che "hash" sia la posizione corretta perché i documenti per "hash_value" raccomandano l'uso di "hash". Ho pensato di farti modificare piuttosto che farlo da solo ... – PeterVermont