全书测试:《C++性能优化指南》
以下20道多选题和10道设计题, 用于本书的测试。
- 以下哪些是C++性能优化的核心策略?(多选)
A) 优先优化所有代码段
B) 使用更高效的算法
C) 减少内存分配次数
D) 将所有循环展开
- 关于字符串优化,正确的措施包括?(多选)
A) 使用reserve()
预分配空间
B) 频繁使用+
运算符拼接字符串
C) 用字符数组代替std::string
D) 启用移动语义避免深拷贝
- 关于阿姆达尔定律,哪些描述正确?(多选)
A) 优化非热点部分也能显著提升性能
B) 优化占比80%的代码使其快2倍,整体提升1.6倍
C) 仅优化耗时10%的代码无法显著改善性能
D) 指导优先优化耗时占比高的代码
- 哪些行为会显著增加内存访问开销?(多选)
A) 频繁访问非连续内存
B) 结构体字段按大小对齐
C) 循环遍历std::vector
D) 使用链表存储大数据
- 关于分析器(Profiler),正确的说法是?(多选)
A) 可精确找到所有性能瓶颈
B) 无法识别算法复杂度问题
C) 适合测量I/O密集型程序
D) 可能遗漏多线程竞争问题
- 优化循环的有效方法包括?(多选)
A) 将循环变量改为unsigned
B) 移除循环内的虚函数调用
C) 将循环条件提到外部
D) 所有循环改为while
形式
- 哪些属于C++11移动语义的优势?(多选)
A) 减少临时对象复制
B) 允许修改右值
C) 自动启用所有标准容器的COW
D) 支持std::unique_ptr
所有权转移
- 关于智能指针,正确的使用方式是?(多选)
A) 用shared_ptr
管理所有动态对象
B)unique_ptr
明确独占所有权
C) 优先使用make_shared
代替new
D) 用weak_ptr
解决循环引用
- 选择
std::unordered_map
而非std::map
的场景是?(多选)
A) 需要按键排序遍历
B) 哈希冲突概率低
C) 频繁插入删除操作
D) 内存占用需最小化
- 减少函数调用开销的方法包括?(多选)
A) 禁用所有内联函数
B) 使用短小的内联函数
C) 用模板替代虚函数
D) 频繁调用小函数无需优化
-
答案:B、C
解析:书中强调算法选择和内存管理是优化核心,循环展开仅在特定场景有效,盲目优化所有代码违反90/10原则。 -
答案:A、C、D
解析:+
会产生临时对象,预分配和移动语义可减少内存操作,字符数组在特定场景更高效。 -
答案:B、D
解析:阿姆达尔公式为1/((1-P)+P/S)
,B符合计算,D是核心结论,A和C违背定律。 -
答案:A、D
解析:非连续访问和链表导致缓存不友好,vector内存连续,结构体对齐可提升访问效率。 -
答案:B、D
解析:分析器依赖采样,可能遗漏算法设计问题(如O(n²))和线程同步开销。
6.答案:B、C
解析:虚函数调用和重复计算循环条件影响性能,变量类型和循环形式影响较小。 -
答案:A、B、D
解析:移动语义通过右值引用避免复制,但C++11后标准库弃用COW实现。 -
答案:B、C、D
解析:滥用shared_ptr
会导致额外开销,其余选项是推荐做法。 -
答案:B、C
解析:哈希表在平均O(1)操作下更高效,但内存可能更大且无序。 -
答案:B、C
解析:内联适合小函数,虚函数调用有额外开销,模板可静态多态。 -
关于缓存局部性,正确的优化措施是?(多选)
A) 优先使用多维数组
B) 用std::list
替代std::vector
C) 结构体字段按访问频率排列
D) 避免在热循环中随机访问内存
- 哪些属于并发编程的正确优化?(多选)
A) 尽可能细化锁的粒度
B) 所有共享变量用volatile
修饰
C) 使用无锁数据结构
D) 避免线程间频繁传递大数据
- 关于内存分配器,正确的描述是?(多选)
A) 自定义分配器可减少碎片
B)std::make_shared
合并对象和控制块内存
C) 内存池适合固定大小对象
D) 默认分配器总是最优选择
- 优化查找操作的正确方法包括?(多选)
A) 对有序数据用二分查找
B) 小数据集用线性搜索更快
C) 哈希表查找总是O(1)
D) 用std::find
替代std::binary_search
- 正确的I/O优化策略是?(多选)
A) 逐字符读取文件
B) 使用缓冲区批量读写
C) 异步处理耗时I/O操作
D) 频繁调用fstream::flush()
- 关于
std::vector
,正确的优化措施是?(多选)
A) 默认预留大量空间防扩容
B)emplace_back
避免临时对象
C) 遍历时用迭代器替代下标
D) 排序时用std::sort
而非qsort
- 哪些行为可能导致伪共享(False Sharing)?(多选)
A) 多线程修改同一缓存行的不同变量
B) 频繁访问线程局部存储
C) 结构体字段间插入填充字节
D) 使用原子操作修改变量
- 关于分支预测,正确的优化是?(多选)
A) 将高概率条件放在if
后
B) 用查表法替代复杂条件
C) 避免在循环中使用switch
D) 用无分支算法减少条件判断
- 正确的预计算优化是?(多选)
A) 在运行时计算常量表达式
B) 预生成查找表减少重复计算
C) 将循环不变式移出循环
D) 用编译时constexpr
计算
- 关于移动语义和
std::move
,正确的是?(多选)
A)std::move
强制转换为右值
B) 移动后原对象不可再使用
C) 所有标准容器支持移动语义
D) 移动构造函数需标记noexcept
- 答案:C、D
解析:连续内存访问(如vector)和字段紧凑排列提升缓存命中率。 - 答案:A、C、D
解析:volatile
不能替代原子操作,其余选项是并发优化关键。 - 答案:A、B、C
解析:默认分配器通用但非最优,特定场景需自定义分配策略。 - 答案:A、B
解析:哈希表最坏情况O(n),binary_search
需数据有序。 - 答案:B、C
解析:批量读写减少系统调用,异步避免阻塞,频繁flush增加开销。 - 答案:B、D
解析:过度预留浪费内存,迭代器与下标性能无显著差异,std::sort
通常更高效。 - 答案:A
解析:伪共享由多线程修改同一缓存行导致,填充字节可缓解。 - 答案:B、D
解析:CPU会预取指令,高概率条件应放if
前,查表和无分支减少分支误预测。 - 答案:B、C、D
解析:预计算旨在将计算提前,运行时计算常量违背此原则。 - 答案:A、C、D
解析:移动后原对象处于有效但未定义状态,通常应标记noexcept
以便容器优化。
设计题
题目1:高效字符串拼接
要求:实现字符串批量拼接,避免临时对象和重复内存分配
输入:包含1万个随机字符串的vector,每个字符串长度50-100字符
输出:拼接后的完整字符串
优化点:预分配内存、减少临时对象、选择最优拼接方式
题目2:自定义内存池实现
要求:为固定大小对象设计内存池,支持快速分配/释放
输入:10万次随机尺寸的对象创建/销毁请求(80%分配20%释放)
输出:总耗时和内存碎片率
优化点:批量内存管理、链表式空闲块管理
题目3:高效大规模数据查找
要求:在10亿有序整数中实现快速查找
输入:随机生成的有序数组和1万个查询值
输出:查询结果和总耗时
优化点:二分查找优化、缓存预取、SIMD指令
题目4:多线程日志处理器
要求:实现支持高并发的日志处理系统
输入:每秒1万条日志写入,每条日志需解析和存储
输出:处理吞吐量和CPU利用率
优化点:无锁队列、线程池、批量提交
题目5:零拷贝数据传输
要求:实现大文件网络传输的零拷贝机制
输入:1GB文件分块传输
输出:传输耗时和内存占用
优化点:mmap内存映射、sendfile系统调用
题目6:无锁哈希表实现
要求:实现线程安全的无锁哈希表
输入:100线程并发执行100万次插入/查询操作
输出:操作成功率和QPS
优化点:CAS原子操作、开放寻址法
题目7:SIMD矩阵运算
要求:实现4K×4K浮点矩阵乘法加速
输入:两个随机生成的单精度浮点矩阵
输出:运算结果和GFLOPS
优化点:AVX2指令集、循环展开、内存对齐
题目8:缓存优化搜索
要求:实现百万级游戏对象空间查询
输入:3D空间坐标数据和范围查询请求
输出:查询结果和帧率
优化点:空间划分、缓存友好数据结构、分支预测
题目9:高效JSON解析
要求:实现高性能JSON解析器
输入:100MB嵌套JSON文件
输出:解析后的DOM树和耗时
优化点:内存池分配、SIMD解析、状态机优化
题目10:延迟内存回收系统
要求:实现对象池的延迟释放机制
输入:高频对象创建/销毁请求(峰值1万QPS)
输出:内存波动图和99%延迟
优化点:批量回收、epoch-based回收、线程本地存储
答案与详解
题目1答案
传统方法:
std::string result;
for (auto& s : vec) {result += s; // 多次重分配
}
优化方法:
size_t total = 0;
for (auto& s : vec) total += s.size();
std::string result;
result.reserve(total); // 预分配
for (auto& s : vec) {result.append(s); // 避免临时对象
}
测试用例:
std::vector<std::string> vec(10000, std::string(80, 'a'));
auto t1 = std::chrono::high_resolution_clock::now();
// 调用两种方法
auto t2 = std::chrono::high_resolution_clock::now();
std::cout << "Time: " << (t2-t1).count() << "ns\n";
性能分析:
优化方法通过预分配消除O(n²)次内存分配,实测速度提升8-10倍。append()
直接操作内部缓冲区,避免临时字符串构造。
题目5答案
传统方法:
char buf[4096];
while(read(fd, buf, 4096)) {send(sockfd, buf, 4096); // 多次内核拷贝
}
零拷贝方法:
void* map = mmap(file, size, PROT_READ, MAP_PRIVATE, fd, 0);
sendfile(out_fd, in_fd, NULL, file_size); // 内核直接传输
性能测试:
constexpr size_t SIZE = 1GB;
auto start = std::chrono::steady_clock::now();
// 执行传输
auto end = std::chrono::steady_clock::now();
std::cout << "Throughput: " << SIZE/((end-start).count()/1e9) << " GB/s\n";
其他设计题目, 稍后实现
相关文章:
全书测试:《C++性能优化指南》
以下20道多选题和10道设计题, 用于本书的测试。 以下哪些是C性能优化的核心策略?(多选) A) 优先优化所有代码段 B) 使用更高效的算法 C) 减少内存分配次数 D) 将所有循环展开 关于字符串优化,正确的措施包括ÿ…...
Oracle数据库数据编程SQL<递归函数详解>
递归函数是一种在函数体内直接或间接调用自身的函数。这种函数通过将复杂问题分解为更小的相同问题来解决特定类型的编程任务。 目录 一、递归函数基本概念 1. 递归定义 2. 递归工作原理 二、递归函数示例 1. 经典阶乘函数 2. 斐波那契数列 3. 计算数字位数 三、递归查…...
Burp Suite从入门到实战之配置启动
目录 1.Burp Suite配置启动 1.1安装Burp Suite jar包 1.2JDK,JDK包含JRE(Java运行时环境) 1.2.1配置JDK11环境变量配置 1.2.2系统变量里添加JAVA_HOME编辑 1.2.3找到Path变量进行编辑添加bin 1.2.4命令行查看是否配置成功 1.3激活j…...
【力扣hot100题】(016)缺失的第一个正数
题目里这么多条条框框……先不按条条框框做了两下。 第一个思路:你不仁我不义,先排序后遍历(时间不符题意) class Solution { public:int firstMissingPositive(vector<int>& nums) {sort(nums.begin(),nums.end());i…...
(undone) MIT6.824 Lecture 02 - RPC and Threads
知乎专栏:https://zhuanlan.zhihu.com/p/641105196 原视频:https://www.bilibili.com/video/BV16f4y1z7kn?spm_id_from333.788.videopod.episodes&vd_source7a1a0bc74158c6993c7355c5490fc600&p2 看知乎专栏 一、Why we choose go?…...
红宝书第二十一讲:详解JavaScript的模块化(CommonJS与ES Modules)
红宝书第二十一讲:详解JavaScript的模块化(CommonJS与ES Modules) 资料取自《JavaScript高级程序设计(第5版)》。 查看总目录:红宝书学习大纲 一、模块化的意义:分而治之 模块化解决代码依赖混…...
输入百分比校验(数字非负数保留2位不四舍五入)
场景用于输入百分比,限制只能输入非负数,保留2位小数,且不四舍五入 以下举例环境 vue2 element-ui 请自行根据实际场景使用 html部分 <el-inputv-model"item.percentage"placeholder"请输入"maxlength"5"…...
Python----机器学习(KNN:决策边界,决策边界计算,交叉验证步骤)
一、KNN算法简介 1.1、定义 KNN(K-Nearest Neighbor)算法是一种基于实例的学习方法,通过测量数据点之间的距离进行分类或回归分析。它是一种简单易懂的多分类技术,依赖于距离最近的邻居来推断数据点的类别或数值,为许…...
SpringBoot 3+ Lombok日志框架从logback改为Log4j2
r要将Spring Boot 3项目中的日志框架从Logback切换到Log4j2,并配置按日期滚动文件和控制台输出,请按照以下步骤操作: 步骤 1:排除Logback并添加Log4j2依赖 在pom.xml中修改依赖: <dependencies><!-- 排除默…...
实战篇Redis
黑马程序员的Redis的笔记(后面补一下图片) 【黑马程序员Redis入门到实战教程,深度透析redis底层原理redis分布式锁企业解决方案黑马点评实战项目】https://www.bilibili.com/video/BV1cr4y1671t?p72&vd_source001f1c33a895eb5ed820b9a4…...
c++-函数增强
一、编译器对函数名的处理 1. C与C的差异 C编译器:保留原始函数名,无额外处理。例如: int add(int a, int b) { return a b; } 在汇编代码中仍为add。 C编译器:通过name mangling(名称修饰)生成唯一函数…...
BKA-CNN-GRU、CNN-GRU、GRU、CNN四模型多变量时序预测(Matlab)
BKA-CNN-GRU、CNN-GRU、GRU、CNN四模型多变量时序预测(Matlab) 目录 BKA-CNN-GRU、CNN-GRU、GRU、CNN四模型多变量时序预测(Matlab)预测效果基本介绍程序设计参考资料 预测效果 基本介绍 BKA-CNN-GRU、CNN-GRU、GRU、CNN四模型多…...
css基础之浮动相关学习
一、浮动基本介绍 在最初,浮动是用来实现文字环绕图片效果的,现在浮动是主流的页面布局方式之一。 效果/代码 图片环绕 代码 div {width: 600px;height: 400px;background-color: skyblue;}img {width: 200px;float: right;margin-right: 0.5em;}<…...
告别分库分表,时序数据库 TDengine 解锁燃气监控新可能
达成效果: 从 MySQL 迁移至 TDengine 后,设备数据自动分片,运维更简单。 列式存储可减少 50% 的存储占用,单服务器即可支撑全量业务。 毫秒级漏气报警响应时间控制在 500ms 以内,提升应急管理效率。 新架构支持未来…...
1.3 斐波那契数列模型:LeetCode 746. 使用最小花费爬楼梯
动态规划解最小花费爬楼梯问题:LeetCode 746. 使用最小花费爬楼梯 1. 题目链接 LeetCode 746. 使用最小花费爬楼梯 题目要求:给定一个整数数组 cost,其中 cost[i] 是从楼梯第 i 阶向上爬所需支付的费用。你可以从下标 0 或 1 的台阶开始爬&a…...
8.4考研408简单选择排序与堆排序知识点深度解析
考研408「简单选择排序与堆排序」知识点全解析 一、简单选择排序 1.1 定义与核心思想 简单选择排序(Selection Sort)是一种选择排序算法,其核心思想是: 每趟选择:从待排序序列中选择最小(或最大&#x…...
【个人笔记】用户注册登录思路及实现 springboot+mybatis+redis
基本思路 获取验证码接口 验证码操作用了com.pig4cloud.plugin的captcha-core这个库。 AccountControl的"/checkCode"接口代码,通过ArithmeticCaptcha生成一张验证码图片,通过text()函数得到验证码的答案保存到变量code,然后把图…...
LiteDB 数据存储与检索效率优化的最佳实践指导
一、引言 在当今数字化时代,数据处理和存储变得至关重要。对于小型项目或者嵌入式系统而言,需要一种轻量级、高效且易于使用的数据库解决方案。LiteDB 作为一款嵌入式的 NoSQL 数据库,因其零配置、易于集成等特点,受到了开发者的青睐。然而,若要充分发挥其性能优势,就需…...
WEB安全--RCE--RCE的绕过
一、回调函数的绕过(PHP) 1.1、回调函数 1.1.1、原理: 回调函数(Callback Function)指的是将函数名或匿名函数作为参数传递给另一个函数,从而在特定条件下调用该函数。 以一个常见的回调函数为例&#…...
uni-app:指引蒙层
组件说明 指引蒙层组件: 通过id标签,突出对应id中的模块; 可以自定义提示词。 点击任意位置关闭蒙层 效果展示和使用示例 切换id之后的效果: 代码实现 <template><view class="guide-mask" v-if="showMask" @click="hideMask"&g…...
什么是CMS?常用CMS有哪些?
一、内容管理系统(Content Management System) 什么是CMS:位于 Web 前端(服务器)和后端办公系统之间的软件系统,用于内容创建、编辑、审批和发布。支持文本、图片、视频、数据库等各类数字内容的管理…...
【Es】基础入门:开启全文搜索的大门
文章目录 一、Elasticsearch 是什么二、核心概念解读索引(Index)文档(Document)映射(Mapping)分片(Shard)副本(Replica) 三、基本操作入门安…...
74. Linux设备树详解
一、什么是设备树 1、uboot启动内核用到zImage,imx6ull-alientek-emmc.dtb。bootz 80800000 – 83000000. 80800000 —zImage 83000000—dtb 2、设备树:设备和树。 设备树(Device Tree),将这个词分开就是“设备”和“树”,描述设…...
从责任链模式聊到aware接口
从责任链模式聊到aware接口 责任链是什么? 责任链模式是一种行为型设计模式,将多个对象连接成一条链,并且沿着这条链传递请求,让多个对象都有机会处理这个请求,请求会顺着链传递,直到某个对象处理它为止。…...
在win11 环境下 新安装 WSL ubuntu + 换国内镜像源 + ssh + 桌面环境 + Pyhton 环境 + vim 设置插件安装
在win11 环境下 新安装 WSL ubuntu ssh gnome 桌面环境 Pyhton 环境 vim 设置插件安装 简单介绍详细流程换国内镜像源安装 ssh 桌面环境python 环境vim 设置插件安装 简单介绍 内容有点长,这里就先简单描述内容了。主要是快速在 Win11 搭建一个 wsl 的 linux 环…...
考研408-数据结构完整代码 线性表的链式存储结构 - 单链表
单链表操作详解(C实现) 目录 单链表尾插法创建单链表头插法创建删除指定节点按值查找按序号查找插入节点完整代码示例注意事项总结 尾插法创建 #include<bits/stdc.h> using namespace std;typedef struct LNode {int data;struct LNode* next;…...
使用Python爬虫获取淘宝App商品详情
在电商领域,获取商品详情数据对于市场分析、竞品研究和用户体验优化至关重要。淘宝作为国内领先的电商平台,提供了丰富的商品资源。虽然淘宝App的数据获取相对复杂,但通过Python爬虫技术,我们可以高效地获取淘宝App商品的详细信息…...
在 VMware Workstation 17 中安装的 Ubuntu 虚拟机无法使用桥接模式
在 VMware Workstation 17 中安装的 Ubuntu 虚拟机无法使用桥接模式时,通常是由于 网络配置错误、桥接适配器选择不当或主机网络环境限制 导致。以下是详细的排查和解决方法:我采用第一步就解决了问题 1. 检查 VMware 桥接模式配置 步骤 1:…...
2025前端八股文终极指南:从高频考点到降维打击的面试突围战
2025前端八股文终极指南:从高频考点到降维打击的面试突围战 一、2025前端八股文核心考点重构 1.1 新型响应式系统三连问 Vue3信号式响应性: // 信号式响应性底层实现 const [count, setCount] createSignal(0) effect(() > {console.log("当…...
MIPS-32架构(寄存器堆,指令系统,运算器)
文章目录 0 Preview:寄存器32通用0 $zero1 $at2—3 \$v0-$v14—7 \$a0-$a38—15 \$t0-$t716—23 \$s0-$s724—25 \$t8-$t926—27 \$k0-$k128 $gp29 $sp30 $fp 指令系统运算存储器 0 Preview: MIPS架构有32位版本和64位版本,本文介绍32位版本 寄存器 正如笔者曾说…...
MySQL数据库和表的操作之SQL语句
🎯 本文专栏:MySQL深入浅出 🚀 作者主页:小度爱学习 MySQL数据库和表的操作 关系型数据库,都是遵循SQL语法进行数据查询和管理的。 SQL语句 什么是sql SQL:结构化查询语言(Structured Query Language)&…...
Ubuntu在VMware中无法全屏
Ubuntu在VMware中无法全屏 方法:安装open-vm-tools 在Ubuntu打开终端: 1.输入: sudo apt-get install open-vm-tools2.安装依赖: sudo apt-get install open-vm*3.重启Ubuntu reboot...
[C++面试] 智能指针面试点(重点)续3
[C面试] RAII资源获取即初始化(重点)-CSDN博客 [C面试] 智能指针面试点(重点)-CSDN博客 [C面试] 智能指针面试点(重点)续1-CSDN博客 [C面试] 智能指针面试点(重点)续2-CSDN博客 …...
借助FastAdmin和uniapp,高效搭建AI智能平台
在数字化办公时代,效率与协作是企业发展的核心竞争力。传统的办公工具虽然功能丰富,但在面对复杂多变的团队协作需求时,往往显得力不从心。为了解决这一痛点,我们推出了一款全新的办公AI平台,它不仅能够满足文字和语音…...
【弹性计算】异构计算云服务和 AI 加速器(四):FPGA 虚拟化技术
《异构计算云服务和 AI 加速器》系列,共包含以下文章: 异构计算云服务和 AI 加速器(一):功能特点异构计算云服务和 AI 加速器(二):适用场景异构计算云服务和 AI 加速器(…...
Unity功能模块一对话系统(5)-完善对话流程及功能
现在我们的文本仍然是单句显示的,这还不是我们想要的效果,本期让我们完善对话流程,并使用SO(ScriptableObject)来进行一段对话序列的配置和动态加载。 最终效果功能展示 功能一:场景内可根据资源序号ID来…...
Ubuntu 系统中安装 Nginx
步骤 1:更新软件包列表 在安装前,先更新系统软件包列表: sudo apt update步骤 2:安装 Nginx 通过 apt 直接安装 Nginx: sudo apt install nginx -y步骤 3:验证安装 安装完成后,检查 Nginx …...
Elasticsearch:使用 Azure AI 文档智能解析 PDF 文本和表格数据
作者:来自 Elastic James Williams 了解如何使用 Azure AI 文档智能解析包含文本和表格数据的 PDF 文档。 Azure AI 文档智能是一个强大的工具,用于从 PDF 中提取结构化数据。它可以有效地提取文本和表格数据。提取的数据可以索引到 Elastic Cloud Serve…...
如何 编译 px4
DeepSeek-R1满血版 回答完成 深度思考完成 用时27秒,搜索全网29篇资料 以下是详细的PX4固件编译教程,综合多平台及常见问题解决方案: 一、环境准备 系统要求 Ubuntu 20.04/22.04(推荐)或 MacOS 12 Windo…...
pycharm2024.1.1版本_jihuo
目录 前置: 步骤: step one 下载软件 step two 卸载旧版本 1 卸载软件 2 清除残余 step three 下载补丁 step four 安装2024.1.1版本软件 step five 安装补丁 1 找位置放补丁 2 自动设置环境变量 step six 输入jihuo码 前置: 之…...
LLaMA Factory微调后的大模型在vLLM框架中对齐对话模版
LLaMA Factory微调后的大模型Chat对话效果,与该模型使用vLLM推理架构中的对话效果,可能会出现不一致的情况。 下图是LLaMA Factory中的Chat的对话 下图是vLLM中的对话效果。 模型回答不稳定:有一半是对的,有一半是无关的。 1、未…...
Vulnhub:Digitalword.local: FALL靶机渗透
将靶机按照图中连接方式打开,fall在virtualBox中打开 信息收集 扫描得ip arp-scan -l 扫描端口 nmap -A -T4 -sV -p- 扫描目录 gobuster dir -u http://192.168.117.160 -x php,txt,html -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt 一个一个…...
androidstudio安装完成后创建新的示例项目编译报错解决
项目场景: 提示:这里简述项目相关背景: 安装完成android studio想要编译一个自带的demo项目,没想到一直有编译报错,最后终于搞好了,记录下避免再踩坑。 androidstudio安装完成后创建新的示例项目编译报错…...
C#/.NET/.NET Core技术前沿周刊 | 第 31 期(2025年3.17-3.23)
前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿,助力技术成长与视野拓宽。 欢迎投稿、推荐…...
QT 跨平台发布指南
一、Windows 平台发布 1. 使用 windeployqt 工具 windeployqt --release --no-compiler-runtime your_app.exe 2. 需要包含的文件 应用程序 .exe 文件 Qt5Core.dll, Qt5Gui.dll, Qt5Widgets.dll 等 Qt 库 platforms/qwindows.dll 插件 styles/qwindowsvistastyle.dll (如果使…...
数制——FPGA
1、定点数 定点数的三种表示方式: 原码:符号位 绝对值 表示方法 反码:正数的反码表示 与原码表示一致,负数的反码表示 除符号位,其他位全都取反 补码:正数的补码表示 与原码表示一致,负数的补码…...
车载以太网网络测试 -25【SOME/IP-报文格式-1】
1 摘要 本专题接着上一专题对SOME/IP进行介绍,主要对SOME/IP报文格式以及定义的字段进行详细介绍,有助于在实际项目过程中对SOME/IP报文的理解。 上文回顾: 车载以太网网络测试 -24【SOME/IP概述】 2 SOME/IP-报文格式 通过上个专题介绍&a…...
Kubernetes》》k8s》》Replication Controller
RC(Replication Controller) 应用托管在kubernetes之后,kubernetes需要保证应用能够持续运行,这是RC的工作内容,它会确保任何时间kubernetes中都有指定数量的Pod在运行。在此基础上,RC还提供了一些更高级的特性,比如滚…...
力扣HOT100之矩阵:73. 矩阵置零
这道题我没有想到什么好的办法,直接暴力AC了,直接遍历两次矩阵,第一次遍历用两个向量分别记录出现0的行数和列数,第二次遍历就判断当前的元素的行数或者列数是否出现在之前的两个向量中,若出现了就直接置零,…...
天锐蓝盾终端安全防护——企业终端设备安全管控
从办公室的台式电脑到员工手中的移动终端,这些设备不仅是工作的得力助手,更是企业数据的重要载体。然而,随着终端设备的广泛使用,安全风险也如影随形。硬件设备使用不当、数据随意传输等问题频发,使得企业数据面临着泄…...