我刚刚开始使用C ++,而且我处在一个艰难的地方。我的问题是: 如何将矢量a中的偶数按升序排列到矢量b中? 例如:7 4 2 9 5 - > 2 4 另外,如果可能的话,我希望现在能够理解最简单的算法,没有任何进展。我只知道泡泡排序。
答案 0 :(得分:1)
一种简单的方法就是将向量中的所有偶数条目复制到另一个条目,然后对该向量进行排序。这很容易实现,如果你已经有一个运行良好的冒泡排序算法,你可以使用该函数而不是从头开始。要将偶数分成新的向量,您可以执行以下操作:
for(size_t i = 0; i < myVec.size(); ++i)
{
if(myVec[i] % 2 == 0)
{
sortVec.push_back(myVec[i]);
}
}
然后,您可以在sortVec
之后对其进行冒泡排序,并且您将按升序或降序排列偶数,并且您可以更改它以对奇数执行相同的操作。
答案 1 :(得分:0)
按升序对矢量进行排序:
#include <algorithm>
// intVec is your std::vector<int>
std::sort(intVec.begin(), intVec.end())
答案 2 :(得分:0)
两种选择:
- 将您的vector
过滤为仅包含偶数的新std::sort
,然后std::sort
- 编写一个排序函数,首先将其排序为偶数和奇数,然后按大小排序,然后使用vector
。然后,你将有一个$("input.LanguageLevel")
包含所有数字,其中偶数的数字在开头排序,如果你愿意,你可以修剪矢量
第一个有点快,但两个都有它们的魅力,我想