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

有关问题的C++STL的解决方案

2012-02-29 
求一个问题的C++STL的解决方案有如下结构体:typedef struct{double kDistValintkDistIdx}K_DIST然后定

求一个问题的C++STL的解决方案
有如下结构体:
typedef struct
{
  double kDistVal;
  int kDistIdx;
}K_DIST;
然后定义一个结构体数组:K_DIST kDist[100];
现在要对kDist按照结构体中关键字kDistVal排序,然后kDistIdx也要相应交换,用STL怎么做呢?
谢谢!

[解决办法]
定义一个比较大小的函数,在sort里面作为函数指针传进去。
[解决办法]
第一:struct重载一个operator<();

使用一个容器来装所有的节点

第二:std:sort(containter.begin(),container.end());
[解决办法]
sort(begin, end, IsGreat);
IsGreat函数里面按照你的要求比较大小,比较大小的时候交换。
[解决办法]
按照容器的要求实现对结构的比较函数,之后就可对待普通数据类型一样进行排序了,其中最好实现拷贝构造方法和=操作符重载

热点排行