priority_queue队列问题
有一段程序:
bool RELRouting::checkExpireEntry(const priority_queue <RreqExpireTimerSet, vector<RreqExpireTimerSet>, RreqExpireLifetimeCompare>* exq,const char* dest){
const RreqExpireTimerSet* q0;
if(!(exq->empty())){
q0 = &(exq->top());
for(unsigned int i = 0; i < exq->size(); i++){
if(q0[i].dest.compare(dest)==0){
return true;
}
}
}
return false;
}
void RELRouting::cancelExpireEntry(priority_queue <RreqExpireTimerSet, vector<RreqExpireTimerSet>, RreqExpireLifetimeCompare>* exq,const char* dest){
RreqExpireTimerSet* q0;
if(!(exq->empty())){
q0 = (RreqExpireTimerSet*)&(exq->top());
for(unsigned int i = 0; i < exq->size(); i++){
if(q0[i].dest.compare(dest)==0){
q0[i].canceled = true;
return;
}
}
}
return;
}
RreqExpireTimerSet是定义一个结构,第一段里面q0 = &(exq->top());和第二段里面q0 = (RreqExpireTimerSet*)&(exq->top());到底什么意思呢,程序大致的意思是和exq里面的元素比较么?