当前位置: 首页 > news >正文

常州做沙滩旗的公司网站长沙seo外包平台

常州做沙滩旗的公司网站,长沙seo外包平台,手机维修网站模板,上海建设网站哪家好一&#xff1a;仿函数 开始模拟前咱先了解一下仿函数。有了它&#xff0c;我们就可以自己传个代码让优先级队列升序还是降序&#xff0c;自己模拟时也不用在需要升序降序时改代码。这是个很有用的东西。 不写模版也可以&#xff0c;但模版能用在更多地方嘛 template <class …

一:仿函数

开始模拟前咱先了解一下仿函数。有了它,我们就可以自己传个代码让优先级队列升序还是降序,自己模拟时也不用在需要升序降序时改代码。这是个很有用的东西。

不写模版也可以,但模版能用在更多地方嘛

template <class T>
struct Less
{bool operator()(const T& x, const T& y){return x < y;}
};
template<class T>
struct Greater
{bool operator()(const T& x, const T& y){return x > y;}
};

这里没用class,因为反正都要用的就直接用默认public的struct了。定义时可以看成重载小括号,千万别漏了嗷。接下来用直接像函数一样用就行了,我们来模拟。

二:优先级队列

namespace hhh {template<class T, class Container = vector<T>, class Compare = Less<int>>
//上面第三个参数就是仿函数class priority_queue{public:priority_queue() {}template<class InputIterator>priority_queue(InputIterator first, InputIterator last):_con(first, last){for (int i = (_con.size() - 2) / 2; i >= 0; i--)adjust_down(i);}void adjust_up(int child){Compare com;//使用仿函数前别忘先搞个对象int parent = (child - 1) / 2;while (child > 0){if (com(_con[parent], _con[child]))//这里就在用了 看到吧不用写小于大于了{swap(_con[child], _con[parent]);child = parent;parent = (child - 1) / 2;}else break;}}void adjust_down(int parent){Compare com;size_t child = parent * 2 + 1;while (child < _con.size()){if (child + 1 < _con.size() &&com(_con[child], _con[child + 1]))//这里也是++child;if (com(_con[child], _con[parent])){swap(_con[child], _con[parent]);parent = child;child = parent * 2 + 1;}else break;}}void push(const T& x){_con.push_back(x);adjust_up(_con.size() - 1);}void pop(){swap(_con[0], _con[_con.size() - 1]);_con.pop_back();adjust_down(0);}const T& top(){return _con[0];}bool empty(){return _con.empty();}size_t size(){return _con.size();}private:Container _con;};
}

这个实现就是用空间适配器,还有堆的思想,没啥难的

感谢你看到这,大家共同进步!

http://www.ds6.com.cn/news/113927.html

相关文章:

  • 自己开发一款软件需要多少钱杭州seo培训
  • 网站建设方案的摘要怎么写北京seo优化多少钱
  • 自媒体135app下载成都自动seo
  • 广西最优秀的品牌网站建设公司免费独立站自建站网站
  • 品牌经营策略百度seo公司一路火
  • 个人网站注册平台要多少钱百度建站平台官网
  • 淮安做网站 卓越凯欣seo流量排名工具
  • ss网站代码百度推广话术全流程
  • 工艺品网站设计短网址链接生成
  • 上海做网站多少钱四川全网推网络推广
  • 制作一个网站的费用惠州seo外包公司
  • 网站域名和网站网址三只松鼠网络营销案例分析
  • 免费淘宝网站建设百度推广账号怎么申请
  • 淘宝客导购网站 丢单网站服务器搭建
  • wordpress收费么西安seo代理
  • 做推文封面图网站有什么平台可以推广信息
  • 网站建设中技术程序网站快速排名推广软件
  • 移动端app开发公司网络优化的意义
  • 企业展示型网站建设最新国际新闻50条简短
  • 学做ps的软件的网站有哪些种子搜索
  • 个人网站制作成品媒体软文发布平台
  • 单位网站怎么制作四川企业seo
  • 微商网站建设国际新闻界官网
  • 邢台做网站推广服务深圳网站维护
  • 域名和网站名不一样搜索引擎营销的作用
  • 郑州阿里巴巴网站建设seo建站是什么意思
  • 广州网站建设gzqiyi重庆网页优化seo公司
  • 做网站去哪里室内设计培训班学费一般多少
  • 兰州网站建设cheng百度 营销推广是做什么的
  • wordpress版本替换南昌seo排名公司