Domanda

Ho un paio di domande su come utilizzare i set C++ (std::set)

  1. Esiste un modo per ottenere l'unione, l'intersezione o la differenza di due set C++?(È abbastanza semplice scrivere la mia funzione per farlo, ma volevo sapere se esisteva una funzione integrata per questo)

  2. I set C++ possono essere utilizzati come chiavi in ​​una mappa?

È stato utile?

Soluzione

Usa il set_difference(), set_union(), set_intersection() E set_symmetric_difference() funzioni.

I set e le mappe supportano qualsiasi tipo di chiave confrontabile.Per impostazione predefinita ciò significa che il tipo ha operator<() definito, ma puoi fornire il tuo comparatore.I set C++ non hanno operator<() definiti e pertanto non possono essere utilizzati come chiavi a meno che non si fornisca il proprio comparatore.

Altri suggerimenti

Per quanto riguarda la tua prima domanda, dai un'occhiata

Qualsiasi cosa può essere utilizzata come chiave in una mappa purché si fornisca una classe o una funzione che possa confrontarli. Qui è un esempio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top