在使用std::sort( first, last, Pred )的时候,第三个参数我想用自定义的比较函数。可是,我遇到了一下问题,在线求指导。
1 template< typename T >
2 void fun()
3
4 {
5 map< T, uint > data_count; //映射数据-出现次数
6 vector< T > data; //数据集
7 struct _less_by_count{
8 bool operator()( const T& lhs, const T& rhs )
9 {
10 if( data_count.at( lhs ) < data_count.at( rhs ) )
11 return true;
12 return false;
13 }
14 };
15 std::sort( data.begin(), data.end(), _less_by_count() );
16 }
我想以每个数据的出现次数为排序规则,而data_count却为一个临时变量,编译错误:operator()不能访问data_count!
求助解决方案:以data_count.second为排序规则(不要将data_count设计为全局变量,保留其局部性)。
谢谢!!!!!!!!!!
原文链接: https://www.cnblogs.com/newwayy/archive/2012/05/07/2488866.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/49614
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!