STL的list容器如何对结构体进行排序
2013-07-24 10:04
363 查看
链表list有自定义的sort排序函数,默认由大到小排序,但是只有能够比较大小的数值类型的内容才可以,如int,float,double等,对于结构体需要自己定义排序函数。
例如:
定义结构体:
typedef
struct NewTreeElem
{
long nNodeId;
//节点id
int nLevel;
//层次
double dSoIn;
//社会影响
};
定义全局比较函数,注意必须是全局函数:
////比较
boolCompInfo(NewTreeElem first, NewTreeElem second)
{
if(first.dSoIn <= second.dSoIn) //由大到小排序 //如果想要由小到大,改为大于即可
{
return
false;
}
else
{
return
true;
}
}
定义链表:
list<NewTreeElem> listSocialInf
链表排序:
//对邻居按照社会影响由大到小排序
listSocialInf.sort(CompInfo);
例如:
定义结构体:
typedef
struct NewTreeElem
{
long nNodeId;
//节点id
int nLevel;
//层次
double dSoIn;
//社会影响
};
定义全局比较函数,注意必须是全局函数:
////比较
boolCompInfo(NewTreeElem first, NewTreeElem second)
{
if(first.dSoIn <= second.dSoIn) //由大到小排序 //如果想要由小到大,改为大于即可
{
return
false;
}
else
{
return
true;
}
}
定义链表:
list<NewTreeElem> listSocialInf
链表排序:
//对邻居按照社会影响由大到小排序
listSocialInf.sort(CompInfo);
相关文章推荐
- STL中对vector容器中的结构体进行排序
- 如何对List<Map> 进行排序
- 利用STL中的sort算法对向量等容器进行排序
- 如何以list进行排序
- vector元素为自定义结构体类型时如何对容器元素进行排序?
- 关于利用STL中的sort算法对向量等容器进行排序的问题
- list结构体根据某个成员进行排序
- STL中的find,find_if函数(对类、容器(vector、list)进行查找)
- 对vector等STL标准容器进行排序操作
- java如何对list进行排序
- 如何根据对象的属性,对集合(list / set)中的对象进行排序
- 如何对List中的对象进行排序
- C++ 中list容器,stl中sort自定义排序规则 注意事项
- 如何对List中的对象进行排序
- (使用STL自带的排序功能进行排序7.3.2)POJ 2092 Grandpa is Famous(结构体排序)
- 对vector等STL标准容器进行排序操作(转!)
- 如何对List集合中的对象进行按某个属性排序
- 如何对对象列表List进行排序呢
- C#如何对List中的Object进行排序
- C++中防止STL中迭代器失效——map/set等关联容器——vector/list/deque等序列容器—如何防止迭代器失效—即erase()的使用