如何按升序将偶数从向量 a 转移到向量 b?

How to transfer even numbers from vector a to vector b in ascending order?

本文关键字:向量 转移 升序 何按      更新时间:2023-10-16

我刚刚开始C++,我处于一个艰难的境地,向量。我的问题是: 如何将向量 a 中的偶数按升序放入向量 b 中? 例如:7 4 2 9 5 -> 2 4 另外,如果可能的话,我希望现在最简单的算法能够理解,没有什么高级的。我只知道气泡排序。

一个简单的方法是将向量中的所有偶数条目复制到另一个向量,然后对该向量进行排序。这将很容易实现,如果您已经有一个运行良好的气泡排序算法,则可以使用该函数而不是从头开始。要将偶数分隔到新向量中,可以执行以下操作:

for(size_t i = 0; i < myVec.size(); ++i)
{
if(myVec[i] % 2 == 0)
{
sortVec.push_back(myVec[i]);
}
}

然后,您可以在sortVec之后对气泡进行排序,您将按升序或降序排列偶数,并且可以更改它以对奇数执行相同的操作。

按升序对向量进行排序:

#include <algorithm>
// intVec is your std::vector<int>
std::sort(intVec.begin(), intVec.end())

两个选项: - 将您的vector过滤为仅包含偶数的新,然后std::sort- 编写一个用于排序的函数,该函数首先排序为偶数和奇数,然后按大小排序,然后仅使用std::sort。然后,您将有一个包含所有数字的vector,开头排序为偶数,如果您愿意,可以修剪向量

第一个有点快,但都有他们的魅力,我认为