set排序问题
来源:互联网 发布:厘米换算英尺英寸编程 编辑:程序博客网 时间:2024/06/15 02:25
#include <set>
#include <iostream>
class ChildClient
{
public:
int iCurCount;
int iMaxCount;
ChildClient(int iMax, int iCur)
{
iMaxCount = iMax;
iCurCount = iCur;
}
bool operator<(const ChildClient* pClient) const
{
return (iMaxCount - iCurCount) < (pClient->iMaxCount - pClient->iCurCount);
}
};
class KChild
{
public:
int iKAK;
void * p;
KChild(int k, void * ppp)
{
iKAK = k;
p=ppp;
}
bool operator<(const KChild pClient) const
{
return pClient.iKAK > iKAK;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
ChildClient * pClient1 = new ChildClient(8,1);
ChildClient * pClient2 = new ChildClient(8,5);
ChildClient * pClient3 = new ChildClient(8,4);
std::set<ChildClient*> setSort;
setSort.insert(pClient1);
setSort.insert(pClient2);
setSort.insert(pClient3);
std::set<ChildClient*>::iterator iter = setSort.begin();
for(; iter != setSort.end(); iter++)
{
ChildClient* pClient = (ChildClient*)*iter;
std::cout << pClient->iCurCount << std::endl;
}
std::cout << "*******************************" << std::endl;
std::multiset<KChild> setSortK;
int i = 0;
int j = 1;
setSortK.insert(KChild(3, &i));
setSortK.insert(KChild(5, &j));
setSortK.insert(KChild(5, &i));
std::multiset<KChild>::iterator iterK = setSortK.begin();
for(; iterK != setSortK.end(); iterK++)
{
KChild objKC = (KChild)*iterK;
std::cout << objKC.iKAK << std::endl;
}
int n;
std::cin >> n;
return 0;
}
set中不能通过存储的指针所指向的内容进行排序,如std::set<ChildClient*>这个就不能排序, 而存储的对象的成员可以用来排序,如std::multiset<KChild>;
如果实在需要一个指针也存入set, 则可以构造一个类,包含一个比较参数和需要存储的指针, 如
class WaitingRoomNode
{
public:
int m_iWaitCount;
CGameRoom* m_pGameRoom;
WaitingRoomNode(int iCount, CGameRoom* pGameRoom)
{
m_iWaitCount = iCount;
m_pGameRoom = pGameRoom;
}
bool operator<(const WaitingRoomNode objNode) const
{
return objNode.m_iWaitCount > m_iWaitCount;
}
};
另外,set的排序方法,在连接的时候就会运行,是在程序主入口之前调用
- set排序问题
- set接口排序问题
- list 转 set 排序问题
- hibernate set、arrayList等排序问题
- set排序
- CRM中Customer遇到的Set属性排序问题
- JAVA UTIL包里面的set排序问题
- Hibernate的Set映射(一对多)的排序问题
- Java中对已有的Set进行排序问题
- Hibernate的Set映射(一对多)的排序问题
- Set剔除重复数据和List的排序问题
- set问题
- 排序之set集合排序
- Hibernate Set排序
- set的排序条件
- hibernate 配置Set排序
- Hibernate的set排序
- hibertnate 中set排序
- SFS2X客户端全部事件详细
- 问读nutch 1.2 解析html的插件 HtmlParser插件
- 我学好了在写。
- HTML 标签
- mysql_fetch_lengths的调用规则
- set排序问题
- vmware下linux通过host-only方式与windows共享网络
- CreateIoCompletionPort 返回值的问题
- 设置和获取socket buffer size
- Java栈与堆
- 带滚动条的对话框类
- 冬天晚上洗完澡后要穿上袜子
- 生成静态页面
- jsp 统计在线人数