首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

Vector求指导解决办法

2013-11-11 
Vector求指导定义的结构体为typedef struct _tagStockItem{UINT uStockPlaceId//节点位置int marketType

Vector求指导
定义的结构体为
typedef struct _tagStockItem   
{
UINT uStockPlaceId;          //节点位置
int marketType;
TCHAR strStockText[40];      //文件保存内容
TCHAR StockMarket[40];       //界面显示内容
bool operator < (const _tagStockItem& item) const 
{
return (uStockPlaceId<item.uStockPlaceId);
}
bool operator > (const _tagStockItem& item) const 
{
return item < *this;
}
}StockItem,*pStockItem;

如果下面这样Vector是可以排序的
StockItem test = {0};
StockItem test1 = {0};
test.uStockPlaceId = 3;
test1.uStockPlaceId = 1;
vector<StockItem > vtHotkey1;
vtHotkey1.push_back(test);
vtHotkey1.push_back(test1);
stable_sort(vtHotkey1.begin(),vtHotkey1.end(),less<_tagStockItem>());

但是现在很多地方用到的都是结构体指针:
StockItem *test = new StockItem;
StockItem *test1 = new StockItem;
test->uStockPlaceId = 3;
test1->uStockPlaceId = 1;
vector<StockItem *> vtHotkey1;
vtHotkey1.push_back(test);
vtHotkey1.push_back(test1);
stable_sort(vtHotkey1.begin(),vtHotkey1.end(),less<_tagStockItem *>());
排序就会出问题,求大神指导下应该怎么排序
[解决办法]
先写一个函数

bool lessStockItem( const StockItem* l, const StockItem*r)
{
return *l < *r ;
}

stable_sort(vtHotkey1.begin(),vtHotkey1.end(),lessStockItem );

热点排行