priority_queue Definition?



  • Hi,

    Wieso steht in der priority_queue diese Definition:

    template < class T, class Container = vector<T>,
               class Compare = less<typename Container::value_type> > class priority_queue;
    

    und nicht diese, kuerzere und imo besser lesbare Version:

    template < class T, class Container = vector<T>,
               class Compare = less<T> > class priority_queue;
    

    ?

    Kann value_type != T sein? Falls ja, wann und wieso?



  • Eisflamme schrieb:

    Kann value_type != T sein? Falls ja, wann und wieso?

    Wenn der Benutzer wider besseres Wissen sich das mit Gewalt so aussucht.

    priority_queue<int,vector<char> > pq;
    	pq.push(66+256);
    	pq.push(65);
    	pq.push(67+512);
    	while(!pq.empty()){
    		cout<<pq.top()<<'\n';
    		pq.pop();
    	}
    


  • Oh. Okay, danke!

    Macht so was Sinn oder sollte der Container nicht besser vorgeben, dass der untergeordnete Container den gleichen Typ wie die priority_queue nutzen sollte? Aber das geht ja dann erst mit concepts, oder?


Anmelden zum Antworten