如何在c ++中使用std :: sort()作为长long向量?

Fla*_*lau 1 c++ sorting vector

我有一个long long类型的向量,并希望按升序对它进行排序,但我认为我误解了std :: sort()的用法.

#include <vector>
#include <algorithm>
#include <functional>

...

std::vector<long long> numbers (4);
numbers[0] = 6;
numbers[1] = 4;
numbers[2] = 3;
numbers[3] = 7;
Run Code Online (Sandbox Code Playgroud)

我试过用:

std::sort(numbers.begin(), numbers.end(), std::greater<long long>());
Run Code Online (Sandbox Code Playgroud)

但我得到一个错误

std::vector<long long int>’ is not derived from ‘const std::basic_string<_CharT, _Traits, _Alloc>’
Run Code Online (Sandbox Code Playgroud)

另外,理想情况下我想仅在两个元素之间对向量进行排序,例如在数字[1]和数字[2]之间; 但是对前两个参数使用这些值似乎不起作用.

谢谢.

编辑:另外,我正在使用g ++编译器

jua*_*nza 9

排序已经按升序排序,所以你需要的只是

std::sort(numbers.begin(), numbers.end());
Run Code Online (Sandbox Code Playgroud)

您发布的代码将按降序排序,并按原样运行,但您必须#include <functional>:

#include <functional> // for std::greater, std::less
#include <algorithm>
#include <vector>

....
std::sort(numbers.begin(), numbers.end(), std::greater<long long>());
Run Code Online (Sandbox Code Playgroud)