我需要B類具有AToTime對象的最小優先級隊列。我重載操作符>但它仍然表示沒有操作符匹配操作數
AToTime有operator>
,但我收到錯誤告訴我,不是沒有運營商>匹配的操作數...
#include <queue>
#include <functional>
using namespace std;
class B
{
public:
B();
virtual ~B();
private:
log4cxx::LoggerPtr m_logger;
class AToTime
{
public:
AToTime(const ACE_Time_Value& time, const APtr a) : m_time(time), m_a(a){}
bool operator >(const AToTime& other)
{
return m_time > other.m_time;
}
public:
ACE_Time_Value m_time;
APtr m_a;
};
priority_queue<AToTime, vector<AToTime>, greater<AToTime> > m_myMinHeap;
};
作爲一般性評論,發佈提問時,儘量減少空間的代碼需要(試圖儘可能多地使用代碼),同時保持可讀性。嘗試通過刪除與問題無關的代碼(記錄器定義)無用的評論('private私人成員'就在'私人'不提供任何內容之前]並壓縮它們'public://使用私有成員的無用點這裏'如果他們添加信息。這同樣適用於免費的額外空間(在'priority_queue'定義之前的兩條空行) – 2010-03-14 10:56:31