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 ++编译器
排序已经按升序排序,所以你需要的只是
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)