2013-07-19 19 views
6
std::priority_queue<some_type, std::vector<some_type>, some_comparator> A; 
std::priority_queue<some_type, std::vector<some_type>, some_comparator> B; 

Bu önceleki sıra A ve B'yi aynı karşılaştırıcıya göre nasıl birleştirebilirim? Yerleşik fonksiyonu bulmaya çalıştım ama bulamadım.iki öncelik sırasını birleştirin

+5

@BoBTFish: 'std :: priority_queue' yineleyici göstermiyor. – Gorpik

+1

Tüm öğeleri bir sıradan diğerine itin? – juanchopanza

+0

@BoBTFish Zaten bunu düşündüm ama sorun onun yineleyici erişilebilir değil. Ben A.begin() veya A.end() yapamıyorum. Bu arayüz mevcut değil. –

cevap

5

en basit yolu, sadece başka bir sırasından nesneleri taşımak için:

while(!B.empty()) { 
    A.push(B.top()); 
    B.pop(); 
} 

olsa da, daha verimli bir usul var olabilir.

+0

Bu son çare gibi görünüyor. –

İlgili konular