#include <iostream>
#include <queue>
using namespace std;
int main()
{
// cout<<"Hello World";
priority_queue<int> spq; // max heap
priority_queue <int, vector<int>, greater<int>> lpq; // min heap
spq.push(1);
lpq.push(2);
lpq.push(3);
cout << spq.size() - lpq.size() << endl;
return 0;
}
這段代碼給了我出乎意料的非常大的價值18446744073709551615
我無法理解這里的問題。
uj5u.com熱心網友回復:
你有無符號整數環繞。
spq.size()是1,lpq.size()是2。
所以當你這樣做時1 - 2,由于您使用的是無符號數,因此您不會以負數結束,而是會環繞到您擁有的最大無符號數,18446744073709551615.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/513355.html
