news 2026/4/18 8:36:06

stack queue

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
stack queue

模拟实现:

namespace bit { #include<deque> template<class T, class Con = deque<T>> class stack { public: stack() {} void push(const T& x) { _c.push_back(x); } void pop() { _c.pop_back(); } T& top() { return _c.back(); } const T& top()const { return _c.back(); } size_t size()const { return _c.size(); } bool empty()const { return _c.empty(); } private: Con _c; }; template<class T, class Con = deque<T>> class queue { public: queue() {} void push(const T& x) { _c.push_back(x); } void pop() { _c.pop_front(); } T& back() { return _c.back(); } const T& back()const { return _c.back(); } T& front() { return _c.front(); } const T& front()const { return _c.front(); } size_t size()const { return _c.size(); } bool empty()const { return _c.empty(); } private: Con _c; }; };

priority_queue:

namespace bit { //函数对象 less template<class T> struct less { bool operator()(const T& left, const T& right) { return left < right; } }; //函数对象 greater template<class T> struct greater { bool operator()(const T& left, const T& right) { return left > right; } }; namespace bit { //函数对象 less template<class T> struct less { bool operator()(const T& left, const T& right) { return left < right; } }; //函数对象 greater template<class T> struct greater { bool operator()(const T& left, const T& right) { return left > right; } }; template <class T, class Container = std::vector<T>, class Compare = less<T> > class priority_queue { public: //创建空的优先级队列 priority_queue():c() {} template <class InputIterator> priority_queue(InputIterator first, InputIterator last) :c(first, last) { //将c中的元素调整为堆的结构,默认为大堆 int count = c.size(); int root = ((count - 2) >> 1); for (; root >= 0; root--) AdjustDown(root); } bool empty() const { return c.empty(); } size_t size() const { return c.size(); } // 堆顶元素不允许修改,因为:堆顶元素修改可以会破坏堆的特性 const T& top() const { return c.front(); } void push(const T& x) { c.push_back(x); //push_heap(c.begin(), c.end(), comp); AdjustUp(c.size() - 1); } void pop() { if (empty()) return; std:swap(c.front(), c.back()); c.pop_back(); AdjustDown(0); } private: //向上调整 void AdjustUp(int child) { int parent = ((child - 1) >> 1); while (child) { if (Com(c[parent], c[child])) { std::swap(c[child], c[parent]); child = parent; parent = ((child - 1) >> 1); } else return; } } //向下调整 void AdjustDown(int parent) { int child = parent * 2 + 1; while (child < c.size()) { // 找以parent为根的较大的孩子 if (child + 1 < c.size() && Com(c[child], c[child+1])) child += 1; // 检测双亲是否满足情况 if (Com(c[parent], c[child])) { std::swap(c[child], c[parent]); parent = child; child = parent * 2 + 1; } else return; } } private: Container c; Compare Com; }; };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 8:27:03

在Windows系统上安装PyTorch GPU版:从零到成功运行的过程记录

作为深度学习研究者或开发者&#xff0c;能够利用GPU加速模型训练是提高工作效率的关键。本文将详细介绍如何在Windows系统上成功安装并配置PyTorch GPU版本&#xff0c;让你能够充分利用NVIDIA显卡的计算能力。 第一步&#xff1a;检查当前系统环境 在开始安装之前&#xff…

作者头像 李华
网站建设 2026/4/17 19:00:31

【MYSQL数据库】基础版之表的操作

3.表的操作3.1 创建表语法&#xff1a;create table table_name(filed1 datatype,filed2 datatype,filed3 datatype )character set 字符集 collate 校验规则 engine 存储引擎;说明&#xff1a;field 表示列名datatype 表示列的类型character set 字符集&#xff0c;如果没有指…

作者头像 李华
网站建设 2026/4/18 7:58:06

提示词工程解锁大模型潜力的终极沟通术

提示词工程是提升AI交互效果的关键技术&#xff0c;主要包含User Prompt和System Prompt两类。User Prompt是用户即时指令&#xff0c;需遵循清晰表达、角色设定和示例提供等原则&#xff1b;System Prompt则是全局性指令集&#xff0c;定义AI角色和行为准则。通过RTF框架结构化…

作者头像 李华
网站建设 2026/4/18 7:28:02

仅限内部分享:资深专家解读Dify重排序日志的7种模式

第一章&#xff1a;检索重排序的 Dify 日志分析在构建基于大语言模型的应用时&#xff0c;Dify 作为低代码开发平台&#xff0c;提供了完整的日志追踪机制&#xff0c;尤其在检索增强生成&#xff08;RAG&#xff09;流程中&#xff0c;对检索与重排序阶段的日志分析至关重要。…

作者头像 李华
网站建设 2026/4/18 8:34:29

手把手教你实现Dify模型秒级加载,私有化部署不再卡顿

第一章&#xff1a;私有化部署的 Dify 模型加载在企业级 AI 应用场景中&#xff0c;私有化部署 Dify 成为保障数据安全与合规性的首选方案。通过本地化运行 Dify&#xff0c;企业可在内网环境中完成大模型的接入、编排与服务发布&#xff0c;避免敏感数据外泄。模型加载作为核心…

作者头像 李华
网站建设 2026/4/17 7:35:25

好写作AI|别让AI只改病句了!它已潜入你论文的“思想后台”

当你还让AI检查“的得地”&#xff0c;学霸已用它来辩论学术观点了各位在学术深水区“扑腾”的研究者&#xff0c;是时候更新一下对AI写作工具的认知了&#xff01;如果你的使用记录还停留在“帮我改改语病”和“这段降个重”&#xff0c;那可真有点“杀鸡用牛刀”了。今天&…

作者头像 李华