class IndexToPG { public: int m_iIndex; double m_dPGScore; IndexToPG(int index,double score) { m_iIndex = index; m_dPGScore = score; } }; //binary function predicate, used to sort the IndexToPG object, decrease order by pgScore bool IndexToPGSortScoreDec(const IndexToPG& item1, const IndexToPG& item2) { return item1.m_dPGScore > item2.m_dPGScore; } vector<IndexToPG> tempCollection; sort(tempCollection.begin(),tempCollection.end(),IndexToPGSortScoreDec);