J'utilise donc la file d'attente STL priority_queue <> avec des pointeurs ... Je ne veux pas utiliser de types de valeur, car créer un tas de nouveaux objets à utiliser dans la file d'attente prioritaire serait extrêmement coûteux. Alors ... Je suis en train de le faire:priority_queue <> comparaison pour les pointeurs?
class Int {
public:
Int(int val) : m_val(val) {}
int getVal() { return m_val; }
private:
int m_val;
}
priority_queue<Int*> myQ;
myQ.push(new Int(5));
myQ.push(new Int(6));
myQ.push(new Int(3));
Maintenant, comment puis-je écrire une fonction de comparaison pour obtenir ceux à commander correctement dans le Q? Ou, quelqu'un peut-il suggérer une autre stratégie? J'ai vraiment besoin de l'interface priority_queue et je n'aimerais pas utiliser les constructeurs de copie (à cause des quantités massives de données). Merci
EDIT: Int est juste un espace réservé/par exemple ... Je sais que je peux utiliser int
en C/C++ lol ...
J'essaie cette approche en ce moment ... au lieu d'utiliser shared_ptr juste en utilisant une classe wrapper de base. – Polaris878
J'ai accepté cela parce que je suis fondamentalement en utilisant la même idée ... – Polaris878
@ Polaris878 Bien que les pointeurs partagés ne sont pas pertinents ici. Vous n'avez jamais dit que vous vouliez une propriété partagée. – juanchopanza