C++ 'da oldukça yeni ve C++' da Priority Queue STL kullanarak Min Heap uygulamasına çalışıyorum. Web'in etrafına baktım ve altta eklediğim bağlantı olan bir kod üzerinde değişiklik yaptım.Min HL kullanarak STL Önceliği Sırası açıklaması
Vektörlerin nasıl çalıştığını ve bir nabzın ne olduğunu anladığımı anlıyorum, ancak 'i' j 'öğesinin öğeleri minimumdan maksimum düzeye ayarlamasında nasıl bir rol oynadığını anlayamıyorum.
Kodu burada yayınlayacağım.
#include <queue>
#include <iostream>
using namespace std;
struct comparator {
bool operator()(int i, int j) {
return i > j;
}
};
int main(int argc, char const *argv[])
{
priority_queue<int, std::vector<int>, comparator> minHeap;
minHeap.push(10);
minHeap.push(5);
minHeap.push(12);
minHeap.push(3);
minHeap.push(3);
minHeap.push(4);
while (!minHeap.empty()) {
cout << minHeap.top() << " ";
minHeap.pop();
}
return 0;
}
Birisi programın yürütülmesini izleyebilir mi? Bu programın geçen birkaç saat boyunca şanssız olarak nasıl çalıştığını anlamaya çalışıyorum.
Ben belirli bir kritere göre, birinci öğe her zaman içerdiği elementlerin en fazla olduğu here
Yürütmeyi izlemek için kullanabileceğiniz bir hata ayıklayıcınız var mı? – jbapple
Programın yürütülmesini izlemek isterseniz, her derleyicide, kendiniz de dahil olmak üzere, kodun içine girmek için kullanabileceğiniz ve nasıl çalıştığını adım adım gösteren bir ilgili hata ayıklayıcısı da vardır. Derlemiş olduğunuz kodu adım atmak için hata ayıklayıcınızı nasıl kullanacağınızı öğrenmeye biraz zaman ayırırsanız, kendinize büyük bir iyilik yapacaksınız. Ne yazık ki, ne yazık ki, stackoverflow.com için pek çok posterin eksikliği eksiktir. –
Programlamada yeni bir kullanıcıyım ve henüz bir hata ayıklayıcısını nasıl kullanacağımı öğrenmedim. Ama yakında öğreneceğim. –