sort的用法为什么出错
std::vector<int>v; std::copy(std::istream_iterator<int>(std::cin),std::istream_iterator<int>( ),std::back_inserter(v) ); std::sort(v.begin(),v.end(), std::greater_equal<int>() ); std::copy(v.begin(), v.end(),std::ostream_iterator<int>(std::cout," "));
#include "stdafx.h"#include <vector>#include <iostream>#include <algorithm>#include <functional> // For greater<int>( )int main(){std::vector<int> v;v.push_back(20);v.push_back(30);v.push_back(10);//std::copy(std::istream_iterator<int>(std::cin),std::istream_iterator<int>( ),std::back_inserter(v) );写法不对。std::sort(v.begin(),v.end(), std::greater_equal<int>() );std::copy(v.begin(), v.end(),std::ostream_iterator<int>(std::cout," "));}
[解决办法]
greater_equal不行。
详见<泛型编程与stl>
[解决办法]
只能用<或者>, 即==时必须返回false, greater_equal正好违背了.