免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4431 | 回复: 8
打印 上一主题 下一主题

binary_search()函数的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-09-02 14:07 |只看该作者 |倒序浏览
typedef struct {
   string name;
   string sex;
   string born;
}STU;


接着初始化10个学生的信息STU[10]:
.......初始化(按名字递增)....内容略......

然后我用vector容器装入学生的数据

vector<STU> Stu_vec;

for(int i=0;i<10;++i)
  Stu_vec.push_back(STU);

我想问的是,我怎么用二分法在Stu_vec中查找一个学生的信息???

binary_search(Stu_vec.begin(),Stu_vec.end(),学生名字,comp);//这个比较函数该如何写?

[ 本帖最后由 oitry_chen 于 2008-9-2 14:23 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-09-02 14:11 |只看该作者
man bsearch
按照需要设计一下比较函数

[ 本帖最后由 gawk 于 2008-9-2 14:13 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2008-09-02 14:13 |只看该作者
原帖由 gawk 于 2008-9-2 14:11 发表
man bsearch

什么意思?

论坛徽章:
0
4 [报告]
发表于 2008-09-02 14:16 |只看该作者
需要就是通过学生姓名(假设唯一)来进行查找,就是不知道该如何写这个比较函数,望高人指教,感激不尽!!!

论坛徽章:
0
5 [报告]
发表于 2008-09-02 14:19 |只看该作者
原帖由 oitry_chen 于 2008-9-2 14:16 发表
需要就是通过学生姓名(假设唯一)来进行查找,就是不知道该如何写这个比较函数,望高人指教,感激不尽!!!

这要看你把STU结构中的那一个变量当作比较的key,才能设计,可以到c版搜一下,很多类似的问题

论坛徽章:
0
6 [报告]
发表于 2008-09-02 14:20 |只看该作者
有序序列才能按二分法查找

  class   Comp   {  
  public:  
  bool   operator()   (const   STU&   a1,   const   STU&   a2)   const   {  
  return   a1.name<   a2.name;  
  }  
  };

[ 本帖最后由 5毛党党员 于 2008-9-2 14:22 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2008-09-02 14:22 |只看该作者
原帖由 5毛党党员 于 2008-9-2 14:20 发表
有序序列才能按二分法查找

不好意思,忘记说明了,初始化时按名字递增的...

论坛徽章:
0
8 [报告]
发表于 2008-09-02 14:24 |只看该作者
class   Comp   {  
  public:  
  bool   operator()   (const   STU&   a1,   const   STU&   a2)   const   {  
  return   a1.name<   a2.name;  
  }  
  };

comp其实就是你排序是用得函数

论坛徽章:
0
9 [报告]
发表于 2008-09-02 14:33 |只看该作者
原帖由 5毛党党员 于 2008-9-2 14:24 发表
class   Comp   {  
  public:  
  bool   operator()   (const   STU&   a1,   const   STU&   a2)   const   {  
  return   a1.name<   a2.name;  
  }  
  };

comp其实就是你排序是用得函数


  非常感谢!解决了..

[ 本帖最后由 oitry_chen 于 2008-9-2 15:05 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP