C ++ Vector Sorts

时间:2017-07-07 23:50:51

标签: c++ vector

我正在使用Codefights中的一个向量来处理“almostIncreasingSequence”挑战。有没有办法跟踪排序方法有多少“步骤”,所以我可以设置一个简单的计数器/标志来检查排序是否超过预定义的阈值?

1 个答案:

答案 0 :(得分:6)

是的。您可以使用std::sort的自定义比较功能,如下所示:

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    std::vector<int> myVector { 2, 8, 5, 9, 3, 7, 1, 4, 6, 0 };

    int counter = 0;
    std::sort(myVector.begin(), myVector.end(), [&counter](int lhs, int rhs) {
        counter++;
        return lhs < rhs;
    });

    std::cout << "Steps: " << counter << std::endl;
    for(auto e : myVector)
        std::cout << e << ' ';
    std::cout << std::endl;

    return 0;
}