C++ sort求助!!!

在使用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

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月9日 上午1:17
下一篇 2023年2月9日 上午1:17

相关推荐