news 2026/6/11 14:15:19

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/6/10 11:08:57

《Ascend C 高级优化:GELU、LayerNorm 实现与算子融合实战》

1. 为什么优化 GELU 和 LayerNorm&#xff1f;以 LLaMA-7B 为例&#xff1a;每层包含 2 个 GELU&#xff08;FFN 中&#xff09;和 2 个 LayerNorm共 32 层 → 单次前向传播调用 128 次若每次节省 1μs&#xff0c;则每 token 节省 128μs在千亿 token 推理场景中&#xff0c;这…

作者头像 李华
网站建设 2026/6/10 15:55:17

基于模型上下文协议(MCP)的可插拔式临床AI工具链Clinical DS研究(下)

第六章 结论与未来工作 6.1 主要研究结论 本研究深入探讨了医疗AI在临床落地中的核心矛盾,即如何从“模型能答”迈向“系统可信、可用、可追溯”。为解决此矛盾,我们创新性地提出并详细设计实现了一套基于模型上下文协议(MCP)的**“可插拔式临床AI工具链”**架构。通过将复…

作者头像 李华
网站建设 2026/6/10 15:55:10

深入理解 Ascend C:昇腾 AI 芯片的高性能编程语言

引言&#xff1a;AI 芯片时代的编程新范式随着人工智能技术的飞速发展&#xff0c;专用 AI 芯片已成为支撑大模型训练与推理的关键基础设施。华为昇腾&#xff08;Ascend&#xff09;系列 AI 芯片凭借其高算力、低功耗和软硬协同设计&#xff0c;在国产 AI 芯片生态中占据重要地…

作者头像 李华
网站建设 2026/6/10 17:24:29

Claude vs Codex:核心能力差异

不是测评&#xff0c;不吹参数&#xff0c;只说工程里最值钱的能力差异。1. Claude 的核心技能 “读懂你没写清楚的代码” 强在&#xff1a; 复杂项目理解业务流程还原设计/架构层问题识别 最适合用法&#xff1a; 让它先"读代码 讲人话 找风险"像一个懂业务的高级…

作者头像 李华
网站建设 2026/6/9 22:47:42

Ascend C 入门与核心编程模型详解

引言随着人工智能和高性能计算需求的爆炸式增长&#xff0c;专用 AI 芯片成为提升算力效率的关键。华为昇腾&#xff08;Ascend&#xff09;系列 AI 处理器正是在此背景下应运而生。为了充分发挥昇腾芯片的硬件性能&#xff0c;华为推出了 Ascend C —— 一种面向昇腾 AI 处理器…

作者头像 李华
网站建设 2026/6/11 13:29:37

OSPF综合实验

实验拓扑实验要求 R4为ISP&#xff0c;其上只配置IP地址:R4与其他所直连设备间均使用公有IP; R3-R5、R6、R7为MGRE环境&#xff0c;R3为中心站点&#xff1b; 整个OSPF环境IP基于172.16.0.0/16划分&#xff1b;除了R12有两个环回&#xff0c;其他路由器均有一个环回IP 所有设备…

作者头像 李华