std::vector 容器, vec1 按照 vec2的次序排序

博客详细介绍了如何使用std::vector,根据另一个vector的顺序对元素进行排序。包括两种情况:1) 额外元素按大小顺序排列在末尾;2) 额外元素保持原有顺序在末尾。通过构建位置映射、排序和合并操作,实现了所需排序效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、vec1 按 vec2次序排序

1、vec1中的额外的那些 按大小顺序,排在末尾。

1)、构建位置映射

2)、复制 vec1

3)、使用 std::sort 进行排序

3.1)、Lambda 表达式的具体逻辑是:

3.2)、比较逻辑

最终输出

2、vec1中的额外的那些 按vec1原有顺序,排在末尾。

1)、构建位置映射

2)、拆分vec1

3)、排序

4)、合并结果

3、个人数据结构上的应用



需求就是,vec1中,元素按照vec2 中元素排序。

vec1.size()>=vec2.size()

一、vec1 按 vec2次序排序

同时根据,vec1中,额外元素的排序方式 不同,实现方法也有所区别

1、vec1中的额外的那些 按大小顺序,排在末尾。

如果 vec1 = {4, 2, 3, 1, 7, 5, 6}vec2 = {3, 1, 4, 2},运行结果将是 3 1 4 2 5 6 7

#include &l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清水迎朝阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值