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

【C++】优先级队列+反向迭代器

priority_queue的介绍

通常用堆来实现,能在O(log n)的时间复杂度内插入和提取最高(或最低)优先级的元素。
在这里插入图片描述

  1. 优先队列是一种容器适配器,根据严格的弱排序标准,它的第一个元素总是它所包含的元素中最大的(默认情况)。
  2. 此上下文类似于堆,在堆中可以随时插入元素,并且只能检索最大堆元素(优先队列中位于顶部的元素)。
  3. 优先队列被实现为容器适配器,容器适配器即将特定容器类封装作为其底层容器类,queue提供一组特定的成员函数来访问其元素。元素从特定容器的“尾部”弹出,其称为优先队列的顶部。
  4. 底层容器可以是任何标准容器类模板,也可以是其他特定设计的容器类。容器应该可以通过随机访问迭代器访问,并支持以下操作
    empty():检测容器是否为空
    size():返回容器中有效元素个数
    front():返回容器中第一个元素的引用
    push_back():在容器尾部插入元素
    pop_back():删除容器尾部元素
  5. 标准容器类vector和deque满足这些需求。默认情况下,如果没有为特定的priority_queue类实例化指定容器类,则使用vector。
  6. 需要支持随机访问迭代器,以便始终在内部保持堆结构。容器适配器通过在需要时自动调用算法函数make_heap、push_heap和pop_heap来自动完成此操作。

弱排序标准是一种在数学和编程中用于定义元素之间排序关系的二元关系。它要求关系满足以下三个主要性质:
1.自反性:对于任何元素a,a与自身是相等的。
2.传递性:如果a小于b,且b小于c,则a小于c。
3.连通性:对于任何两个元素a和b,要么a小于b,要么b小于a

priority_queue的使用

1.默认情况下是大堆,其底层按照less比较;若创建小堆,将第三个模板参数换成greater的比较方式;
2.如果在priority_queue中放自定义类型的数据,用户需要在自定义类型中提供> 或者< 的重载。

数组中第k大的元素

在这里插入图片描述

大堆方法:第三个模板参数直接使用less排序,利用前置–的特性,k–
将优先级队列中的前k-1个元素删除掉
在这里插入图片描述

小堆方法:第三个模板参数要传入greater排序函数,运用topk问题思想,创建前k个元素的小堆,从数组的第k个元素开始遍历。如果当前元素大于堆顶元素(堆顶是最小值),则移除堆顶元素,并将当前元素加入堆。最后,堆顶元素即为数组中第k大的元素。
在这里插入图片描述

priority_queue的模拟实现

仿函数

又称函数对象,是类模板,通过重载()运算符,使得类模板的对象可以像函数一样被调用。
区分:函数模板要传对象,类模板要传参数是类型,不能加括号
在这里插入图片描述

向下调整

void Adjustdown(int parent)
{Compare com;int child = 2 * parent + 1;while (child < _con.size()){if (child + 1 < _con.size() && com(_con[child],_con[child + 1])){child++;}if (com(_con[parent],_con[child])){swap(_con[parent], _con[child]);parent = child;child = 2 * parent + 1;}elsebreak;}
}

通过比较器 Compare 确定堆的类型。用于从父节点开始向下调整堆结构,确保堆的性质得到满足。
作用:维护堆的性质,确保插入或移除操作后堆的结构仍然有效。
应用场景:插入新元素后或移除堆顶元素后调用。

向上调整

void Adjustup(int child)
{Compare com;int parent = (child - 1) / 2;while (child > 0){if (com(_con[parent],_con[child])){swap(_con[parent], _con[child]);child = parent;parent = (child - 2) / 2;}else{break;}}
}

通过比较器 Compare 确定堆的类型。用于从子节点开始向上调整堆结构,确保堆的性质得到满足。
作用:维护堆的性质,确保插入新元素后堆的结构仍然有效。
应用场景:插入新元素后调用。

构造函数

在这里插入图片描述

复制元素:将迭代器范围内的所有元素复制到内部容器 _con 中。
构建堆:从最后一个非叶子节点开始,运用向下调整法逐步向上调整堆结构,确保堆的性质得到满足。

删除

在这里插入图片描述

交换堆顶元素与末尾元素,然后调用尾删函数,或者直接size–实现删除功能,再从堆顶即下标为0的位置开始向下调整来满足堆序

插入

在这里插入图片描述

插入新元素后,从最后索引位置size()-1来向上调整满足堆序。

自定义类测试(日期类)

	class Date{public:Date(int year = 1900, int month = 1, int day = 1): _year(year), _month(month), _day(day){}bool operator<(const Date& d)const{return (_year < d._year) ||(_year == d._year && _month < d._month) ||(_year == d._year && _month == d._month && _day < d._day);}bool operator>(const Date& d)const{return (_year > d._year) ||(_year == d._year && _month > d._month) ||(_year == d._year && _month == d._month && _day > d._day);}friend ostream& operator<<(ostream& _cout, const Date& d);private:int _year;int _month;int _day;};ostream& operator<<(ostream& _cout, const Date& d){_cout << d._year << "-" << d._month << "-" << d._day;return _cout;}struct LessPDate{bool operator()(const Date* p1, const Date* p2){return *p1 < *p2;}};
}
void test_priority_queue2()
{priority_queue<Date*, vector<Date*>, LessPDate> pq;pq.push(new Date(2024, 6, 7));pq.push(new Date(2025, 1, 19));pq.push(new Date(2025, 10, 24));while (!pq.empty()){cout << *pq.top() << " ";pq.pop();}cout << endl;//测试仿函数的调用,与日期类无关Less<int>lessfunc;cout << lessfunc(10, 24) << endl;cout << lessfunc.operator()(10, 24) << endl;
}

优先级队列的定义:priority_queue<Date*, vector<Date*>, LessPDate> 表示优先级队列中存储的是 Date 类型的指针,底层容器是 vector,比较器是 LessPDate。
插入元素:通过 push 方法插入三个 Date 对象。
输出元素:通过 while 循环依次输出队列中的元素,直到队列为空。
在这里插入图片描述

整体代码

#pragma once
#include<vector>
#include<functional>//仿函数/函数对象
template <class T>
class Less
{
public:bool operator()(const T& x, const T& y){return x < y;}
};
template <class T>
class Greater
{
public:bool operator()(const T& x, const T& y){return x > y;}
};namespace ee
{template<class T,class Container=vector<T>, class Compare=less<T>>class priority_queue{private:void Adjustdown(int parent){Compare com;int child = 2 * parent + 1;while (child < _con.size()){if (child + 1 < _con.size() && com(_con[child],_con[child + 1])){child++;}if (com(_con[parent],_con[child])){swap(_con[parent], _con[child]);parent = child;child = 2 * parent + 1;}elsebreak;}}void Adjustup(int child){Compare com;int parent = (child - 1) / 2;while (child > 0){if (com(_con[parent],_con[child])){swap(_con[parent], _con[child]);child = parent;parent = (child - 2) / 2;}else{break;}}}public:priority_queue(){}template<class InputIterator>priority_queue(InputIterator first, InputIterator last){while (first != last){_con.push_back(*first);first++;}//建堆for (int i = (_con.size() - 1 - 1) / 2; i >= 0; i--){Adjustdown(i);}}void pop(){swap(_con[0], _con[_con.size() - 1]);_con.pop_back();Adjustdown(0);}void push(const T& x){_con.push_back(x);Adjustup(_con.size() - 1);}const T& top(){return _con[0];}bool empty(){return _con.empty();}size_t size(){return _con.size();}private:Container _con;};

反向迭代器

顾名思义是用于反向遍历的工具。反向迭代器通常通过容器的 rbegin() 和 rend() 方法获取。rbegin() 返回指向容器最后一个元素下一个位置的反向迭代器(end),而 rend() 返回指向容器第一个元素的反向迭代器(begin)。

namespace ee
{template<class Iterator,class ref,class ptr>struct ReverseIterator{typedef ReverseIterator<Iterator, ref, ptr> self;Iterator _it;ReverseIterator(Iterator it):_it(it){ }ref operator*(){Iterator tmp = _it;return *(--tmp);}ptr operator->(){//返回解引用对象的地址return &(operator*());}self& operator++()//前置++{--_it;return *this;}self& operator--(){++_it;return *this;}bool operator!=(const self& s)const{return _it != s._it;}};
}

一般采用镜像对称的方式来模拟实现,即rbegin对应end,rend对应begin。
在重载*运算符时需要注意解引用的是迭代器当前指向的前一个位置,因为rbegin是最后元素的下一个位置,有可能为空会造成非法访问,或者是哨兵位头节点的位置。
++和–分别实现自减和自增的操作来满足反向迭代器的功能。

若不使用镜像对称的方式来模拟实现反向迭代器,那么*操作符的重载就要跟随发生变化。

vector中适配

记得包含ReverseIterator.h头文件即可

在这里插入图片描述
在这里插入图片描述

list中适配

在这里插入图片描述
在这里插入图片描述

相关文章:

【C++】优先级队列+反向迭代器

priority_queue的介绍 通常用堆来实现&#xff0c;能在O(log n)的时间复杂度内插入和提取最高&#xff08;或最低&#xff09;优先级的元素。 优先队列是一种容器适配器&#xff0c;根据严格的弱排序标准&#xff0c;它的第一个元素总是它所包含的元素中最大的(默认情况)。此…...

HOW - 缓存 React 自定义 hook 的所有返回值(包括函数)

目录 场景优化方案示例延伸例子&#xff1a;为什么这很重要&#xff1f;常见的请求 hook 封装优化前优化后优化点一览优化后的 useLoadData使用方式示例&#xff1a;优点回顾 场景 如果你写了一个自定义 Hook&#xff0c;比如 useMyHook()&#xff0c;它暴露出某些值或函数给外…...

AIDD-人工智能药物设计-网络药理学-多组学与网络药理学分析揭示龟龄集治疗少精症的机制

IF6.7|多组学与网络药理学分析揭示龟龄集治疗少精症的机制 2024年10月28日&#xff0c;海军军医大学张卫东教授团队在Phytomedicine&#xff08;IF6.7&#xff09;上发表了题为“Multi-omics and network pharmacology approaches reveal Gui-Ling-Ji alleviates oligoastheno…...

打破单一视角!融合红外和可见光,YOLO算法实现全天候无人机检测

目录 一、摘要 二、系统概述 三、数据集 视频记录 数据集标注 四、数据集分析 五、基于深度学习的无人机探测 基于规则的跟踪方法 六、结论 论文题目&#xff1a;Drone Detection and Tracking with YOLO and a Rule-based Method 论文链接&#xff1a;https://arxiv.…...

Go 语言数据类型

Go 语言数据类型 概述 Go 语言(也称为 Golang)是一种静态强类型、编译型、并发型、具有垃圾回收功能的编程语言。自2009年发布以来,Go 语言因其简洁的语法、高效的执行速度和强大的并发处理能力而广受欢迎。本文将详细介绍 Go 语言中的数据类型,帮助读者更好地理解和掌握…...

<tauri><rust><GUI>基于rust和tauri,将tauri程序打包为window系统可安装的安装包(exe、msi)

前言 本文是基于rust和tauri,由于tauri是前、后端结合的GUI框架,既可以直接生成包含前端代码的文件,也可以在已有的前端项目上集成tauri框架,将前端页面化为桌面GUI。 发文平台 CSDN 环境配置 系统:windows 10平台:visual studio code语言:rust、javascript库:taur…...

ragflow开启https访问:ssl证书为pem文件,window如何添加证书

在 Windows 系统中安装 PEM 格式的证书(通常用于 SSL/TLS 或客户端认证)可以通过以下步骤完成: 方法 1:通过证书管理器(MMC)安装 打开证书管理器 按 Win + R,输入 mmc 回车。点击菜单栏的 文件 > 添加/删除管理单元。选择 证书 > 添加,然后选择 计算机账户 或 当…...

自己搭建cesium应用程序

Cesium项目开发基础(1)——Cesium环境搭建_cesium版本怎么看-CSDN博客 看这篇的时候&#xff1a; 所以要用IIS搭建网站。下载一些东西看这篇的这部分&#xff1a;Tomcat IIS 在局域网中搭建网站&#xff08;最全最详细教程&#xff09;_tomcat iis-CSDN博客 然后在IIS里怎么…...

本地项目HTTPS访问问题解决方案

本地项目无法通过 HTTPS 访问的原因通常是默认配置未启用 HTTPS 或缺少有效的 SSL 证书。以下是详细解释和解决方案&#xff1a; 原因分析 默认开发服务器仅支持 HTTP 大多数本地开发工具&#xff08;如 Vite、Webpack、React 等&#xff09;默认启动的是 HTTP 服务器&#xff…...

软考系统架构设计师之物联网与边缘计算笔记

一、物联网与边缘计算的核心概念 1. 物联网&#xff08;IoT&#xff09; 定义&#xff1a;通过传感器、设备等物理对象接入网络&#xff0c;实现数据采集、传输与智能控制&#xff0c;核心在于物联设备互联与数据驱动决策。架构分层&#xff1a; 感知层&#xff1a;传感器、R…...

已知Word内容格式固定,通过宏实现Word转Excel

文章目录 需求描述一、宏是什么&#xff1f;二、使用步骤1.启用开发工具2.VBA基础知识3.单个Word文件转为Excel4.批量将Word文件转为Excel文件 总结 需求描述 现在有多个Word文档&#xff0c;Word文档格式固定&#xff0c;假如Word内容分为单选题和多选题&#xff0c;每个题目…...

window上 docker使用ros2开发并usbip共享usb设备

曾经参考 https://blog.csdn.net/laoxue123456/article/details/138339029 来共享windows上的usb 发现没有办法成功总是出现 tcp 错误。telnet测试能够正常连接 很是奇怪&#xff0c;window上换成低版本的usbipd仍然是同样的错误&#xff0c;没有办法的情况下参考了docker官方文…...

3D激光轮廓仪知识整理

文章目录 1.原理和应用场景1.1 相机原理1.1.1 测量原理1.1.2 相机激光器1.1.3 沙姆镜头1.1.4 相机标定1.1.5 中心线提取 1.2 应用场景1.2.1 测量相关应用1.2.2 缺陷检测相关应用 2.相机参数介绍及选型介绍2.1 成像原理2.2 原始图成像2.3 生成轮廓图2.4 相机规格参数2.4.1 单轮廓…...

SSH远程工具

一、常见SSH远程工具 工具开源跨平台多标签文件传输高级功能价格Xshell❌Win✔️✔️脚本、会话管理免费/商业版Tabby✔️全平台✔️✔️插件扩展免费MobaXterm❌Win✔️✔️集成工具集免费/付费SecureCRT❌Win/macOS/Linux✔️✔️企业级加密$129+PuTTY✔️全平台❌❌基础连接…...

C++day8

思维导图 牛客练习 练习 #include <iostream> #include <cstring> #include <cstdlib> #include <unistd.h> #include <sstream> #include <vector> #include <memory> using namespace std; class user{ public: …...

Vue响应式系统的简单实现

一、什么是副作用函数和响应式数据&#xff1f; 副作用函数&#xff1a; 可以产生副作用的函数&#xff0c;那么什么是副作用呢&#xff1f;举个栗子&#xff1a; let count 1function effect() {count }function fn() {if (count 1) {console.log(执行1)} else {console.l…...

超卖问题解决方案

目录 需求概述 系统需求 提升高并发吞吐量 解决超卖问题 解决方案分析 悲观锁与乐观锁 悲观锁 乐观锁 数据库行级锁 实现悲观锁&#xff08;排他锁&#xff09; 实现乐观锁 悲观锁&乐观锁 Redis分布式锁 Redis原子操作方案 方案分析 技术实现 通过MULTI事务…...

智享AI直播代理:零门槛掘金新风口

智享AI直播代理&#xff1a;零门槛掘金新风口 传统直播困局&#xff0c;AI破局而生 在电商与内容创业井喷的今天&#xff0c;传统直播模式却陷入“三高”泥潭——人力成本高、内容门槛高、运营风险高。一位主播单日直播超8小时即面临状态下滑&#xff0c;而多平台运营更需…...

在huggingface上制作小demo

在huggingface上制作小demo 今天好兄弟让我帮他搞一个模型&#xff0c;他有小样本的化学数据&#xff0c;想让我根据这些数据训练一个小模型&#xff0c;他想用这个模型预测一些值 最终我简单训练了一个小模型&#xff0c;起初想把这个模型和GUI界面打包成exe发给他&#xff0…...

Spring、Spring Boot和 Spring Cloud 的关系

Spring、Spring Boot和 Spring Cloud 的关系 Spring, Spring Boot 和 Spring Cloud 都是 Spring 生态系统中的重要组成部分&#xff0c;它们之间有紧密的关系&#xff0c;但各自有不同的定位和功能。下面是它们之间的关系和区别&#xff1a; 1、Spring Framework&#xff1a;…...

[蓝桥杯] 求和(C语言)

题目链接 P8772 [蓝桥杯 2022 省 A] 求和 - 洛谷 题目理解 这道题就是公式题&#xff0c;我们模拟出公式后&#xff0c;输出最终结果即可。 本题不难&#xff0c;相信很多同学第一次见到这道题都是直接暴力解题。 两个for循环&#xff0c;测试样例&#xff0c;直接拿下。 #in…...

从用户需求到产品迭代:Scrum 实践全流程详解

目录 前言1. 用户需求与产品待办列表的形成1.1 用户需求的来源与整理1.2 构建产品待办列表&#xff08;Product Backlog&#xff09; 2. 迭代计划与目标设定2.1 Sprint 的时间周期设定2.2 设定明确的 Sprint 目标 3. 开发执行与每日站会3.1 高效协作的开发过程3.2 每日站会&…...

windows10安装配置并使用Miniconda3

windows10安装配置并使用Miniconda3 Conda 与 Anaconda 的区别 Conda 是包管理和环境管理工具&#xff0c;Anaconda 在 Conda 的 基础上预装了大量科学计算包 Conda 与 pip 的区别 Conda 是跨语言的包和环境管理器&#xff08;支持 Python/R 等&#xff09;&#xff0c;能安…...

16-产品经理-需求的评审

在创建需求的时候&#xff0c;有一个"不需要评审"的复选框&#xff0c;如果选中该复选框的话&#xff0c;需求的创建成功后状态是激活的。 但大部分情况下面&#xff0c;需求还是需要评审的。 即使产品完全由一个人负责&#xff0c;也可以将一些不成熟的想法存为草…...

【java图形化界面编程】

文章目录 一、GUI简介二、Swing1.容器组件2. 布局管理器&#xff1a;BorderLayout3.代码实现 实验总结&#xff1a; 一、GUI简介 GUI&#xff1a;图形用户界面。通过图形用户界面&#xff0c;程序的输入输出可以脱离控制台JAVA中实现GUI主要使用3种技术&#xff1a;AMT&#x…...

BGP路由协议之属性1

公认属性是所有 BGP 路由器都必须能够识别的属性 公认必遵 (Well-known Mandatory) : 必须包括在每个 Update 消息里公认任意 (Well-known Discretionary) : 可能包括在某些 Update 消息里。 可选属性不需要都被 BGP 路由器所识别 可选过渡(OptionalTransitive) : BGP 设备不…...

架构思维: 数据一致性的两种场景深度解读

文章目录 Pre案例数据一致性问题的两种场景第一种场景&#xff1a;实时数据不一致不要紧&#xff0c;保证数据最终一致性就行第二种场景&#xff1a;必须保证实时一致性 最终一致性方案实时一致性方案TCC 模式Seata 中 AT 模式的自动回滚一阶段二阶段-回滚二阶段-提交 Pre 架构…...

压测工具开发实战篇(四)——client子窗口功能

你好&#xff0c;我是安然无虞。 文章目录 树控件添加文件补充学习: 函数定义中循环体里的局部变量补充学习: 动态添加对象属性 刷新文件上下文菜单 (右键菜单)实现右键菜单功能 编辑节点文本 在学习本篇文章之前, 建议先看一下上篇介绍MDI子窗口的文章: 压测工具开发实战篇(三…...

如何开发 HTML 游戏

开发 HTML 游戏适合初学者学习编程和游戏开发的基础知识。HTML 游戏通常结合了 HTML、CSS 和 JavaScript 技术&#xff0c;利用浏览器的渲染能力来实现交互式的游戏体验。 1. 确定游戏类型 在开始开发之前&#xff0c;你需要明确你的游戏类型。例如&#xff1a; 简单游戏&…...

机器学习 从入门到精通 day_01

1. 机器学习介绍与定义 1.1 机器学习定义 机器学习&#xff08;Machine Learning&#xff09;本质上就是让计算机自己在数据中学习规律&#xff0c;并根据所得到的规律对未来数据进行预测。 机器学习包括如聚类、分类、决策树、贝叶斯、神经网络、深度学习&#xff08…...

React中的跨组件通信

在React中&#xff0c;跨组件通信有几种常见的方式。每种方式适用于不同的场景&#xff0c;下面是几种常见的跨组件通信方法&#xff1a; 1. 通过父子组件传递 Props 父组件可以通过 props 将数据传递给子组件&#xff0c;子组件只能接收和使用这些数据。 父组件&#xff08…...

Vue项目 bug 解决

Vue2项目部署失败 从gitee 上拉下一个前端项目&#xff0c;然后npm install&#xff0c;报错如下&#xff1a; 解决办法&#xff1a; 从 npm切换到cnpm&#xff1a;npm install -g cnpm执行命令export NODE_OPTIONS--openssl-legacy-provider下载依赖&#xff1a;cnpm instal…...

Python 3.13.2 安装教程(附安装包)轻松开启编程之旅

文章目录 前言软件介绍安装步骤1. 下载安装包2. 运行安装程序3. 选择安装选项4. 等待安装完成5. 验证安装结果 前言 在数字化时代&#xff0c;Python 作为一种简洁、高效且功能强大的编程语言&#xff0c;广泛应用于 Web 开发、数据科学、人工智能等诸多领域。无论是编程新手入…...

Meta 最新发布的 Llama 4:多模态开源大模型全面解析

TL;DR 2025 年 4 月 5 日&#xff0c;Meta AI 正式发布了第四代大型语言模型 Llama 4。引入了 Mixture-of-Experts (MoE&#xff0c;专家混合) 架构&#xff0c;同时原生支持多模态输入&#xff0c;最小的 Llama 4 Scout 模型支持 10m 的长文本输入。 Paper name The Llama 4…...

Web开发:常用 HTML 表单标签介绍

在 Web 开发中&#xff0c;HTML 表单是实现用户交互的关键元素&#xff0c;它为用户提供了输入数据的途径&#xff0c;广泛应用于注册登录、搜索查询、问卷调查等功能场景。本文将详细介绍常用的 HTML 表单标签及其使用方法。 表单容器标签 <form> <form>标签用…...

力扣HOT100之链表:2. 两数相加

这道题就是按照正常的数学思维去做的&#xff0c;设置一个标志位flag用来标记进位的情况&#xff0c;当发生进位时设置为1&#xff0c;否则设置为0&#xff0c;初始时设置为0。我们同时遍历两个链表&#xff0c;将两个节点的值相加&#xff0c;再加上上一位的进位flag&#xff…...

Spring Boot 项目集成 License 授权与续期完整指南

一、背景说明 在 Spring Boot 项目中&#xff0c;通过引入第三方 spring-boot-starter-license 组件&#xff0c;可以快速实现系统权限到期控制、License 证书管理等功能。本文详细介绍如何集成 License 功能&#xff0c;并解决证书安装、权限配置、异常拦截及续期流程等关键问…...

2010年-全国大学生数学建模竞赛(CUMCM)试题速浏、分类及浅析

2010年-全国大学生数学建模竞赛(CUMCM)试题速浏、分类及浅析 全国大学生数学建模竞赛&#xff08;China Undergraduate Mathematical Contest in Modeling&#xff09;是国家教委高教司和中国工业与应用数学学会共同主办的面向全国大学生的群众性科技活动&#xff0c;目的在于激…...

典型的ETL使用场景与数据集成平台的应用

在当今数字化时代&#xff0c;数据已经成为企业决策和运营的核心资产。为了更好地管理和利用数据&#xff0c;企业需要借助高效的数据处理技术。ETL&#xff08;Extract&#xff0c;Transform&#xff0c;Load&#xff09;作为数据处理的核心技术之一&#xff0c;广泛应用于数据…...

深入解析嵌入式Linux系统架构:从Bootloader到用户空间 - 结合B站视频教学

B站视频链接,请多多关注本人B站&#xff1a; &#x1f4cc; Yocto项目实战教程&#xff1a;第二章 视频讲解 目录 第2章 Linux系统架构 2.1 GNU/Linux2.2 Bootloader2.3 内核空间2.4 用户空间 总结 第2章 Linux系统架构 {#linux系统架构} 嵌入式Linux系统是Linux内核的精简版…...

从Oracle和TiDB的HTAP说起

除了数据库行业其他技术群体很多不知道HTAP的 时至今日还是有很多人迷信Hadoop&#xff0c;觉得大数据就是Hadoop。这是不正确的。也难怪这样&#xff0c;很多人OLTP和OLAP也分不清&#xff0c;何况HTAP。 Oracle是垂直方向实现 TiDB是水平方向实现 我个人认为这是两种流派…...

【Vue-路由案例】面经基础版

目录 <<回到导览1.面经基础版1.1.VueCli建项目1.1.1.VueCli 自定义项目1.1.2.ESlint代码规范 1.2.项目路由1.2.1.一级路由配置1.2.2.二级配置路由1.2.3.设置高亮1.2.4.发生请求、渲染1.2.5.跳转传参、再发请求1.2.6.体验优化1.2.7.keep-alive <<回到导览 1.面经基…...

C#调用C++动态库时出现`System.DllNotFoundException`错误的解决思路

文章目录 1. DLL文件路径问题2. 依赖的运行时库缺失3. 平台不匹配&#xff08;x86/x64&#xff09;4. 导出函数名称不匹配5. DLL文件损坏或权限问题6. 运行时库冲突&#xff08;MT/MD不匹配&#xff09;7. 使用DLLImport时的常见错误总结步骤 在C#中调用C动态库时出现System.Dl…...

数据清洗

map阶段&#xff1a;按行读入内容&#xff0c;对内容进行检查&#xff0c;如果字段的个数少于等于11&#xff0c;就删除这条日志&#xff08;不保留&#xff09;去除日志中字段个数小于等于11的日志内容。 <偏移量&#xff0c;第一行的内容> → <通过刷选之后的第一行…...

ubuntu 20.04 编译和运行A-LOAM

1.搭建文件目录和clone代码 mkdir -p A-LOAM/src cd A-LOAM/src git clone https://github.com/HKUST-Aerial-Robotics/A-LOAM cd .. 2.修改代码文件 2.1 由于PCL版本1.10&#xff0c;将CMakeLists.txt中的C标准改为14&#xff1a; set(CMAKE_CXX_FLAGS "-stdc14"…...

Oracle迁移翻车,数据校验没做好...

作为DBA&#xff0c;你是否经历过这样的噩梦&#xff1f;数据库迁移、主从同步、容灾切换后&#xff0c;数据不一致却迟迟无法定位&#xff0c;只能手动写脚本逐表比对&#xff0c;熬到凌晨还在查差异… Oracle GoldenGate Veridata&#xff08;OGG Veridata&#xff09; 就是…...

小刚说C语言刷题——第17讲 循环之for语句

在生活中&#xff0c;我们经常会碰到重复去做某一件事。例如&#xff0c;一个人绕着操场跑圈&#xff0c;一天24小时往复。这些周而往复的事&#xff0c;我们称为循环。 1.循环的作用 在编程时&#xff0c;我们用循环的目的有两个。一个是减少循环时代码量&#xff0c;一个是通…...

如何使用 Coze 的 HTTP 请求节点实现高效数据交互

如何使用Coze的HTTP请求节点实现高效数据交互 在自动化工作流开发中&#xff0c;与外部服务进行数据交互是核心需求之一。Coze平台的HTTP请求节点提供了强大的解决方案&#xff0c;支持通过HTTP协议实现数据的获取、提交、更新和删除等操作。本文将结合官方文档&#xff0c;详…...

【力扣hot100题】(071)每日温度

经典单调栈问题。 感觉自己对这类问题还是不太熟练&#xff0c;想了很久思路&#xff0c;还想了很久是单调递增栈还是单调递减栈…… 方法是维护一个单调递减栈。先将结果result初始化为0&#xff0c;如果温度一直递减&#xff0c;那么result就不用变化了。 遍历每日温度&am…...

ChatBI的落地挑战——技术先进≠产品可用

近年来&#xff0c;大语言模型&#xff08;LLM&#xff09;的爆发让“对话式BI”&#xff08;ChatBI&#xff09;成为行业热点。然而&#xff0c;许多企业发现&#xff0c;尽管技术Demo令人惊艳&#xff0c;实际落地却困难重重——用户提问率低、回答准确度不稳定、使用场景模糊…...