如何以向上的顺序将偶数从向量a传递到向量b?

时间:2018-02-27 22:11:31

标签: c++

我刚刚开始使用C ++,而且我处在一个艰难的地方。我的问题是: 如何将矢量a中的偶数按升序排列到矢量b中? 例如:7 4 2 9 5 - > 2 4 另外,如果可能的话,我希望现在能够理解最简单的算法,没有任何进展。我只知道泡泡排序。

3 个答案:

答案 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")包含所有数字,其中偶数的数字在开头排序,如果你愿意,你可以修剪矢量

第一个有点快,但两个都有它们的魅力,我想