vector排序问题

nhxxling 2007-04-10 09:12:34
我现在有一个结构,里面有两个成员:A和B
A,B里面分别是A00,A01,A02,A01;B01,B02,B03,B04
我已按B排序,现在我再想把相同A的放一起,其它不变,即
A,B分别是:A00,A01,A01,A02;B01,B02,B04,B03,我在排序函数里面用了a1.A==a2.A作为判断。但不能实现我要的结果。
请问高人,怎么处理,谢谢。
...全文
420 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
AWolfBoy 2007-04-10
  • 打赏
  • 举报
回复
只是知道用STL容器,还没真正融合STL。
为你的结构实现重载<运算符,再使用sort这一泛型算法排序就行了
taodm 2007-04-10
  • 打赏
  • 举报
回复
比较函数也必须实现的单纯的<或者>逻辑。
raymonzhao 2007-04-10
  • 打赏
  • 举报
回复
sort要的排序比较必须是> 或者 <
-------------------------------

我记得应该也是可以提供一个比较函数的吧.
nhxxling 2007-04-10
  • 打赏
  • 举报
回复
我现在的vector是已经按其它字段排过序的,我现在只想把储位(Cell_NO)相同的再特别拧到一起,其它顺序不变
todototry 2007-04-10
  • 打赏
  • 举报
回复
sort(iterator1, iterator2)
liangjm1984 2007-04-10
  • 打赏
  • 举报
回复
重载 < 运算符就好了吧...
taodm 2007-04-10
  • 打赏
  • 举报
回复
sort要的排序比较必须是> 或者 < ,你这个太狠了。
去看看effective stl item 21
nhxxling 2007-04-10
  • 打赏
  • 举报
回复
bool SortStockByCell(STU_STOCK * b1,STU_STOCK * b2)
{
if(strcmp(b1->cContainer_Type,b2->cContainer_Type)==0)
{
if(strcmp(b1->cCell_No,b2->cCell_No)==0)
{
return true;
}
}
return false;
}

容器类型相同,并且储位类型想同,这样能不能排到一起
taodm 2007-04-10
  • 打赏
  • 举报
回复
贴代码
zm84714 2007-04-10
  • 打赏
  • 举报
回复
对于自己定义的,必须重载operator<操作符,不然系统无法直接用sort给出正确排序

64,682

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧