文章目录

  • 81. 你对智能指针的了解
  • 82. 一元、二元仿函数的区别和使用背景
    • 一元仿函数
    • 二元仿函数
  • 83. 描述Linux下文件删除的原理
  • 84. 什么是菱形继承?有什么问题,怎么解决?
    • 解决菱形继承问题
  • 85. IO多路复用是什么?
    • select
    • poll
    • epoll
    • select 图示
    • epoll 图示
    • epoll 优越的数据结构(红黑树+双向链表)

81. 你对智能指针的了解

在这里插入图片描述

82. 一元、二元仿函数的区别和使用背景

一元仿函数

在这里插入图片描述

#include <vector>
#include <algorithm>
#include <iostream>// 一元谓词:判断整数是否为偶数
class IsEven {
public:bool operator()(int x) const {return x % 2 == 0;}
};int main() {std::vector<int> vec = {1, 2, 3, 4, 5, 6};// 使用find_if和一元谓词查出第一个偶数// std::find_if 是 C++ 标准库中的一个算法,用来在容器(比如 std::vector)中查找第一个符合给定条件的元素。// template< class InputIterator, class UnaryPredicate >// InputIterator find_if( InputIterator first, InputIterator last, UnaryPredicate pred );/*InputIterator first:容器的起始迭代器。对于 std::vector,这通常是 vec.begin(),即指向容器第一个元素的迭代器。InputIterator last:容器的结束迭代器。对于 std::vector,这通常是 vec.end(),即指向容器最后一个元素后面的位置。UnaryPredicate pred:一个 一元谓词(返回 bool 的函数或函数对象),它定义了要查找的条件*/auto it = std::find_if(vec.begin(), vec.end(), IsEven());if (it != vec.end()) {std::cout << "The first even number is: " << *it << std::endl;} else {std::cout << "No even number found." << std::endl;}return 0;
}

在这里插入图片描述

二元仿函数

在这里插入图片描述

#include <iostream>
#include <vector>
#include <algorithm>
#include <functional> // 包含std::abs// 定义一个比较函数,用于比较两个整数的绝对值
struct AbsCompare {bool operator()(int a, int b) const {// 如果 a 的绝对值小于 b 的绝对值,返回 true;否则返回 falsereturn std::abs(a) < std::abs(b);}
};int main() {std::vector<int> vec = {3, -5, 2, -1, 4};std::sort(vec.begin(), vec.end(), AbsCompare()); // 使用三元函数进行排序for (int num : vec) {std::cout << num << ' ';}std::cout << std::endl;return 0;
}

在这里插入图片描述

83. 描述Linux下文件删除的原理

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

84. 什么是菱形继承?有什么问题,怎么解决?

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

解决菱形继承问题

C++ 通过 虚拟继承(Virtual Inheritance)来解决菱形继承问题。虚拟继承使得通过多个路径继承自同一个基类时,基类只会有一份副本。

在这里插入图片描述

#include <iostream>class A {
public:int x;A() : x(10) {}void print() { std::cout << "A: " << x << std::endl; }
};class B : virtual public A { 
public:B() { x = 20; } 
};class C : virtual public A { 
public:C() { x = 30; } 
};class D : public B, public C { 
public:void show() { std::cout << "D: " << x << std::endl; }
};int main() {D d;d.show();return 0;
}

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

85. IO多路复用是什么?

IO多路复用(I/O Multiplexing)是指在单个线程或进程中同时管理多个输入/输出操作的能力,通常用于处理多个客户端连接,避免为每个连接创建一个线程或进程。常见的 IO多路复用 系统调用有 select、poll 和 epoll。它们的作用都是监视多个文件描述符,并在其中的某个文件描述符准备好进行操作时,通知应用程序。

select

select 是最早实现的 I/O 多路复用机制,在 UNIX 和 Linux 系统中都广泛存在

int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);

在这里插入图片描述

poll

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

epoll

在这里插入图片描述

在这里插入图片描述

select 图示

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

epoll 图示

在这里插入图片描述

epoll 优越的数据结构(红黑树+双向链表)

epoll 的优越性主要来自其 高效的数据结构设计,特别是 红黑树 和 双向链表 的组合。它们使得 epoll 在性能和扩展性上相比于传统的 select 和 poll 更加优秀。接下来,我们将详细讨论这些数据结构如何帮助 epoll 提高性能,并解决了 select 和 poll 的一些问题。

在这里插入图片描述

之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/92445.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/92445.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/92445.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何优雅的使用进行参数校验

在spring里面有一个注解 Validated可以在方法的入参里面这样写//方法 getActivityFlag(RequestBody Validated QueryActivityDto queryActivityDto) //参数详情NotBlank(message "userId不能为空")private String userId;NotNull(message "storeId不能为空&q…

Java学习第一百一十部分——CI/CD

目录 一、前言简介 二、基本信息 三、优势价值 四、核心流程 五、技术栈&#xff08;工具矩阵&#xff09; 六、最佳实践 七、与DevOps关系 八、挑战对策 九、使用建议 十、总结归纳 一、前言简介 CI/CD 的本质是&#xff1a;通过自动化流水线&#xff0c;实现代码从提…

关于 Cocoapods 使用

一、Podfile & .podspec 文件 1、Podfile 1.1. 什么是 pod 简单来说&#xff0c;一个 pod 就是 xcode 里面的一个 dependency&#xff1a; Anyway&#xff0c;pod 就是第三方库的意思。一个 pod 就是指一个第三方库。 1.2. Podfile 有什么用 Podfile 可以理解为就是…

编程速递:2025 年巴西 Embarcadero 会议,期待您的到来

每个英雄都有一段充满奋斗的旅程&#xff0c;这段旅程引领他走向荣耀&#xff0c;而开发者英雄的旅程是2025年巴西Embarcadero大会的重点&#xff0c;以庆祝Delphi成立30周年。网站现已上线巴西Embarcadero在世界上最受期待的Delphi发展英雄会议召开前90天&#xff0c;推出了Em…

DevOps简单教程应用

文章目录概念一、环境准备二、gitlab配置三、.gitlab-ci.yml文件配置概念 Devops是一个概念&#xff0c;就是边开发边测试&#xff0c;能够大大提升开发效率&#xff0c;本文使用pycharmgitlab实现一个简单的DevOps流程 一、环境准备 需要一个测试环境&#xff0c;模拟部署&…

华为流程管理体系构建与落地 之—— 业务流程规划【附全文阅读】

这部分内容聚焦华为业务流程管理&#xff0c;详细阐述了流程规划、设计、运营、评估与优化的具体方法和内容&#xff0c;为企业构建和完善流程管理体系提供了全面的指导。流程规划分类方法&#xff1a;介绍 POS、OES、OMS 等分类法&#xff0c;如 POS 法按规划、运营、支持划分…

Android 项目:画图白板APP开发(零)——功能介绍(笔锋,分页,缩放,多指,硬件加速等)

一、前言 本系列将全面的介绍一些有关Android 画图方面的知识。笔触功能包括&#xff1a;颜色、粗细、透明度、笔锋、橡皮&#xff1b;绘图功能包括&#xff1a;分页、缩放、多指、撤销恢复、笔画加速。别看功能这么多&#xff0c;简单的部分会花较少篇幅介绍&#xff0c;着重会…

香橙派 RK3588 部署千问大模型 Qwen2-VL-2B 推理视频

演示视频 香橙派RK3588部署千问大模型Qwen2-VL-2B推理视频一、场景假设 视频输入为一条网络流&#xff0c;利用大模型对视频中的图像帧进行推理。由于大模型推理耗时长&#xff0c;无法对每帧都进行推理&#xff0c;因此采用跳帧推理的方式&#xff1a;当推理完一帧后&#xf…

排序概念以及插入排序

一、排序基本概念1.就地排序&#xff1a;使用恒定的额外空间来产生输出就地排序只是在原数组空间进行排序处理&#xff0c;也就是输入的数组和得到的数组是同一个2.内部排序和外部排序&#xff1a;待排序数据可以一次性载入到内存中为内部排序&#xff0c;反之数据量过大就是外…

Webpack 核心配置与最佳实践指南

Webpack 是现代前端工程化的核心工具,理解其配置原理和优化技巧对开发效率至关重要。 一、Webpack 基础架构 1、核心概念关系图 2、核心概念详解 概念 作用 示例配置 Entry 应用入口起点 entry: ‘./src/index.js’ Output 编译结果输出位置 output.path: path.resolve(__d…

GISBox私有云+SaaS:安全协同的地理智能平台

一、概述 GISBox&#xff08;GIS 工具箱&#xff09;是一套能够对GIS 影像、地形、倾斜摄影进行场景编辑、切片转化、分发服务的 GIS 工具箱。同时&#xff0c;GISBox还支持私有云并一键开启SaaS服务。 二、什么是私有云&#xff1f; 私有云服务是一种为企业或组织量身定制的…

代理人工智能的隐藏威胁

代理型人工智能的自主性令人兴奋&#xff0c;但事实并非如此。主动性越高&#xff0c;不可预测性就越强&#xff0c;这为严重的、往往被忽视的安全风险打开了大门。从指令劫持到数字供应链的连锁故障&#xff0c;代理型人工智能不仅智能&#xff0c;而且在不受控制的情况下非常…

SonarQube 扫描多个微服务模块

SonarQube 扫描多个微服务模块 在使用 SonarQube/SonarCloud 扫描多个微服务模块时&#xff0c;核心目标是​​确保每个微服务模块被独立分析​​&#xff0c;并在 SonarQube 界面中以独立项目展示结果。以下是具体实现方案&#xff0c;分场景说明&#xff1a; ​​一、前提条…

当前主流且经过市场验证的开源 BI 系统推荐

以下是当前主流且经过市场验证的开源 BI 系统推荐&#xff0c;结合技术特性、适用场景和行业实践&#xff0c;为不同需求提供针对性解决方案&#xff1a;一、综合型开源 BI 平台1. Apache Superset&#xff08;Apache 2.0 协议&#xff09;核心优势&#xff1a;全场景覆盖&…

第05章 排序与分页

1.排序数据 1.1 排序规则 1.2 单列排序 1.3 多列排序 2.分页 2.1 背景 背景1:查询返回的记录太多了,查看起来很不方便,怎么样能够实现分页查询呢? 背景2:表里有 4 条数据,我们只想要显示第 2、3 条数据怎么办呢? 2.2 实现规则 分页原理:所谓分页显示,就是将数据…

第4章 程序段的反复执行4.2while语句P128练习题(题及答案)

&#xff08;&#xff08;1&#xff09;阅读程序#include <bits/stdc.h> using namespace std; //汤永红 int main(){int n,s0;cin >> n;while(n){s s * 10 n % 10;n / 10;}cout << s << endl;return 0; }分别输入&#xff1a;0 1024 1234567890输出…

Linux下管道的实现

1.温故知新在上一篇博客我们知道了动态库是怎么样进行链接的&#xff0c;我们知道我们的.o文件&#xff0c;可执行文件都是我们的ELF格式的文件&#xff0c;是ELF文件&#xff0c;里面就有ELF header&#xff0c;程序头表&#xff0c;节&#xff0c;还有节头表&#xff0c;我们…

光猫、路由器和交换机

光猫&#xff1a;全称为光调制解调器&#xff0c;负责光信号与电信号的转换。在光纤入户的网络环境中&#xff0c;运营商通过光纤传输光信号&#xff0c;光猫将其转换为电脑、路由器等设备能识别的电信号&#xff0c;反之亦然。它是用户端与运营商网络之间的桥梁&#xff0c;保…

从零开始理解编译原理:设计一个简单的编程语言

编译原理是计算机科学的核心领域之一&#xff0c;它研究如何将高级编程语言转换为目标机器能够执行的代码。对于许多开发者来说&#xff0c;编译原理可能是一个神秘而复杂的领域&#xff0c;但实际上&#xff0c;通过系统的学习和实践&#xff0c;我们可以逐步掌握其核心概念和…

年轻新标杆!东方心绣脸韧带年轻技术升级发布

年轻新标杆&#xff01;东方心绣脸韧带年轻技术升级发布近日&#xff0c;“东方心绣脸韧带年轻品项升级发布会”圆满落幕。本次发布会聚焦现代女性面临的衰老困扰&#xff0c;正式推出技术升级成果——“韧带年轻”品项&#xff0c;旨在通过更科学的方案&#xff0c;助力求美者…