c++ - 合并两个排序的向量
问题描述
我有两个排序的向量
std::vector<int> v1 = {1,3}
std::vector<int> v2 = {2}
我想以这样的方式合并这两个向量,以便在合并后它们保持排序
第一种方法:
std::vector<int> v3;
for (int i = 0; i < v1.size(); i++)
{
v3.push_back(v1[i]);
}
for (int i = 0; i < v1.size(); i++)
{
v3.push_back(v2[i]);
}
sort(v3.begin(), v3.end());
我不想要这种方法。我想要比这个更好的方法。
解决方案
我会使用std::merge
:
std::vector<int> v3;
v3.reserve(v1.size() + v2.size());
std::merge(v1.begin(), v1.end(),
v2.begin(), v2.end(),
std::back_inserter(v3));
推荐阅读
- python - Keras 的回调 evaluate_generator
- c++ - 没有堆的两种方式构造对象
- php - 与服务相关的活动正确显示
- google-bigquery - 使用联接表中的引用查询 BigQuery 中的分区表
- css - 聚合物扩展样式
- calculated-columns - Spotfire:计算两个过滤系列之间的增量
- python - 在处理时向文件列表添加计数
- python - 如何在电报机器人(pytelegramBotAPI)中获取chat_id和message_id以更新电报机器人(Python)中最后发送的消息
- python - 更改满足 DataFrame 中条件的行的列值
- python-3.x - matplotlib 轴中是否有最大数量的刻度标签?