读书人

sort的用法为什么出错解决方案

发布时间: 2012-03-29 12:53:12 作者: rapoo

sort的用法为什么出错

C/C++ code
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," "));



90
455
9
234
67
76
67
^Z
请按任意键继续. . .



第二个问题, 有网友向我推荐了stl的智能指针 std::unique_ptr,

可是有人说,现在都用boost的智能指针,怎么回事,是不是std::unique_ptr有问题。



[解决办法]
C/C++ code
#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正好违背了.

读书人网 >C++

热点推荐