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

LC416 vector<bool> 和 bool[] 的异同

LeetCode 416

1. 报错代码

// 01背包,从n个数字里面选,能否凑出和为s的方案
class Solution {
public:bool canPartition(vector<int>& nums) {int m = accumulate(nums.begin(), nums.end(), 0);if(m & 1)   return false;m >>= 1;vector<bool> dp(m + 1);dp[0] = true;for(auto &x : nums) {for(int j = m; j >= x; j -- ) {dp[j] |= dp[j - x];}}return dp[m];}
};

2. 错误信息

Line 13: Char 23: error: no viable overloaded '|='13 |                 dp[j] |= dp[j - x];|                 ~~~~~ ^  ~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/cstddef:168:3: note: candidate function not viable: no known conversion from 'reference' (aka 'std::_Bit_reference') to 'byte &' for 1st argument159 |   operator|=(byte& __l, byte __r) noexcept|   ^          ~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/ios_base.h:104:3: note: candidate function not viable: no known conversion from 'reference' (aka 'std::_Bit_reference') to '_Ios_Fmtflags &' for 1st argument95 |   operator|=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) _GLIBCXX_NOTHROW|   ^          ~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/ios_base.h:154:3: note: candidate function not viable: no known conversion from 'reference' (aka 'std::_Bit_reference') to '_Ios_Openmode &' for 1st argument145 |   operator|=(_Ios_Openmode& __a, _Ios_Openmode __b) _GLIBCXX_NOTHROW|   ^          ~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/ios_base.h:201:3: note: candidate function not viable: no known conversion from 'reference' (aka 'std::_Bit_reference') to '_Ios_Iostate &' for 1st argument192 |   operator|=(_Ios_Iostate& __a, _Ios_Iostate __b) _GLIBCXX_NOTHROW|   ^          ~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/charconv:646:3: note: candidate function not viable: no known conversion from 'reference' (aka 'std::_Bit_reference') to 'chars_format &' for 1st argument637 |   operator|=(chars_format& __lhs, chars_format __rhs) noexcept|   ^          ~~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/future:185:18: note: candidate function not viable: no known conversion from 'reference' (aka 'std::_Bit_reference') to 'launch &' for 1st argument176 |   inline launch& operator|=(launch& __x, launch __y) noexcept|                  ^          ~~~~~~~~~~~
1 error generated.

3. 为什么bool类型需要占用1字节

bool 明明只用来存储 01 两个二进制数据,按理来说一个 bit 就够了,为什么 sizeof(bool)=1 呢?

这是因为计算机硬件对内存的访问以 字节(Byte) 为最小单位。即使一个变量只需要 1 比特的空间,系统也无法直接操作单个比特。

  • 硬件限制CPU 的指令集通常以字节为单位读写内存,直接操作比特需要额外的位掩码(Bitmask)和位移操作,这会降低性能。
  • 地址对齐:若 bool1 比特,多个 bool 变量可能共享一个字节的地址,但读写时需要复杂的位操作,且无法保证原子性(线程安全问题)。

其次,直接操作字节比操作比特更高效:

  • 减少指令开销:访问一个字节只需一条内存读取指令,而操作一个比特需要:

    1. 读取整个字节

    2. 用掩码提取目标比特

    3. 修改比特

    4. 将修改后的字节写回内存

  • 缓存友好性:字节对齐的数据更符合 CPU 缓存行的设计(通常 64 字节/行),频繁的位操作可能导致缓存未命中,降低性能。

如果确实需要节省内存,可通过以下方式实现 比特级存储

(1) 位域(Bit Fields)

在结构体中显式定义比特字段:

struct PackedBools {bool flag1 : 1; // 占用 1 比特bool flag2 : 1;bool flag3 : 1;// 剩余 5 比特未使用
};
// sizeof(PackedBools) = 1 字节(存储 3 个布尔值)
  • 优点:显式控制比特分配,节省内存。
  • 缺点:访问效率低,无法直接取地址,且不同编译器的位域实现可能不同。
(2) std::bitset

固定大小的比特集合,支持位操作:

#include <bitset>
std::bitset<8> flags; // 8 比特(1 字节)
flags[0] = true;      // 访问第 0 位
flags |= 0b00001111;  // 位运算
  • 优点:内存紧凑,支持位运算。
  • 缺点:大小必须在编译时确定,无法动态调整。
(3) vector<bool> 的特化

std::vector<bool> 是标准库中唯一压缩存储的容器,每个元素占 1 比特:

std::vector<bool> vec(8, false); // 仅占 1 字节
vec[0] = true;                   // 通过代理对象操作
  • 优点:动态大小,内存高效。
  • 缺点:返回代理对象(非 bool&),部分操作受限(如 auto&|=)。

4. vector<bool>

std::vector<bool> 是 C++ 的特殊容器,其内部使用位压缩(每个元素占 1 个比特位)。访问元素时返回的是 std::_Bit_reference 类型的代理对象,而不是直接的 bool&。这个代理对象不支持位运算的复合赋值操作符(如 |=, &=, ^=),因此编译会报错。

在这里,我们可以替换 |=||=,因为前者是数值运算,后者是逻辑运算。

详细解释:

  1. std::vector<bool> 的特殊性
    • 普通 vector<T>operator[] 返回 T&,但 vector<bool> 为了节省空间,用 1 个比特存储一个布尔值,因此返回的是 std::_Bit_reference 类型的代理对象。
    • 代理对象只能模拟布尔值的读写,无法直接支持位运算的复合赋值。
  2. 为什么 |= 不合法?
    • a |= b 等价于 a = a | b,但 std::_Bit_reference 没有重载 operator|=
    • std::_Bit_reference 支持 operator=operator bool(),但不支持位运算的复合操作符。
  3. 正确替代方案
    • 布尔值的逻辑或 (||) 是短路操作符,直接返回 truefalse
    • 通过 = 赋值给代理对象,即可正确更新布尔值。

额外建议:

如果性能敏感,可用 std::vector<char> 代替 std::vector<bool>(每个元素占 1 字节,但支持所有位操作)。例如:

std::vector<char> dp(target + 1, false);
// ...
dp[j] |= dp[j - x]; // 合法操作

5. 按位或运算符|

在 C++ 中,按位或运算(||= 主要用于直接操作数据的二进制位。以下数据类型支持按位或运算:

1. 基础整数类型

所有 整型(Integral Types) 及其变体均支持按位或运算:

  • 有符号整数int, short, long, long long
  • 无符号整数unsigned int, unsigned short, 等
  • 字符类型char, unsigned char, signed char
  • 布尔类型bool(但 bool 的按位或运算可能不符合直觉,见下文注意事项)

示例:

int a = 0b1010;      // 二进制 1010 (10)
int b = 0b1100;      // 二进制 1100 (12)
int c = a | b;       // 结果 0b1110 (14)
2. 枚举类型(Enum)

若枚举的底层类型(Underlying Type)是整型(默认是 int),则支持按位或运算:

enum Flags {FlagA = 0b001,FlagB = 0b010,FlagC = 0b100
};Flags f = FlagA | FlagB; // 结果为 0b011 (3)
3. 标准库类型
(1) std::bitset

专为位操作设计,支持 ||= 等位运算:

#include <bitset>
std::bitset<4> a("1010");
std::bitset<4> b("1100");
auto c = a | b;       // 结果 "1110"
a |= b;               // 直接修改 a
(2) std::byte (C++17 起)

表示原始字节数据,支持位运算:

#include <cstddef>
std::byte x = std::byte{0b1010};
std::byte y = std::byte{0b1100};
std::byte z = x | y;  // 结果 0b1110
4. 用户自定义类型

通过 运算符重载 可自定义 ||= 的行为:

struct Bitmask {int value;Bitmask(int v) : value(v) {}// 重载 |Bitmask operator|(const Bitmask& other) const {return Bitmask(value | other.value);}// 重载 |=Bitmask& operator|=(const Bitmask& other) {value |= other.value;return *this;}
};Bitmask a(0b1010), b(0b1100);
Bitmask c = a | b;    // 结果 0b1110
a |= b;                // 修改 a 的值
5. 不支持按位或运算的类型

以下类型 不直接支持 ||=

  • 浮点类型float, double):按位运算对浮点数无意义。
  • 指针类型:虽然指针是整数地址,但直接对其使用 | 可能导致未定义行为。
  • 非整数类类型(如 std::string、容器类):除非显式重载运算符。
  • std::vector<bool>:虽然存储布尔值,但元素访问返回代理对象(不支持 |=)。
注意事项: 关于 bool 的按位或运算

虽然 bool 是整型,但逻辑或(||)和按位或(|)的行为可能不同:

bool a = true, b = false;
bool c = a | b;   // true(按位或:1 | 0 = 1)
bool d = a || b;  // true(逻辑或:true || false = true)

但若需要将 bool 视为比特位参与位运算,建议先转换为 intunsigned char

相关文章:

LC416 vector<bool> 和 bool[] 的异同

LeetCode 416 1. 报错代码 // 01背包&#xff0c;从n个数字里面选&#xff0c;能否凑出和为s的方案 class Solution { public:bool canPartition(vector<int>& nums) {int m accumulate(nums.begin(), nums.end(), 0);if(m & 1) return false;m >> 1;…...

(51单片机)矩阵按键密码锁表白(C语言代码编撰)(矩阵按键教程)(LCD1602浅教程)

目录 源代码 main.c MatrixKey.c MatrixKey.h LCD1602.c LCD1602.h Delay.c Delay.h 运行效果图&#xff1a; 第一步&#xff1a; 第二步&#xff1a; 第三步&#xff1a; 第四步&#xff1a; 代码解析与教程&#xff1a; 延时函数Delay LCD1602 MatrixKey模块 源代…...

C++20新增内容

C20 是 C 语言的一次重大更新&#xff0c;它引入了许多新特性&#xff0c;使代码更现代化、简洁且高效。以下是 C20 的主要新增内容&#xff1a; 1. 概念&#xff08;Concepts&#xff09; 概念用于约束模板参数&#xff0c;使模板编程更加直观和安全。 #include <concept…...

思维链、思维树、思维图与思维森林在医疗AI编程中的应用蓝图

在医疗AI编程中,思维链(Chain of Thought, CoT)、思维树(Tree of Thoughts, ToT)、思维图(可能指知识图谱或逻辑图)以及思维森林(Forest-of-Thought, FoT)等技术框架通过模拟人类认知和推理过程,显著提升了AI在复杂医疗场景中的决策能力和可解释性: 1. 思维链(CoT)…...

[GN] Python3基本数据类型 -- 与C的差异

文章目录 前言Python3的基本数据类型6个标准的数据类型NumbersStringListtupleSetsDictionaries Python运算符逻辑 运算符成员运算符身份运算符 Python3 数字Python3 序列序列切片序列相加序列相乘序列相关内置函数 Python3 列表访问列表的值更新列表删除列表元素拼接列表嵌套列…...

TCP基础篇(一)

文章目录 1.TCP 是如何保证可靠性的?2. 滑动窗口机制3 超时重传4.TCP 报文格式5. 什么是 TCP 协议5.1 如何唯一确定一个 TCP 连接 6.TCP 三次握手过程6.1 可以两次握手吗? 7.TCP 的四次挥手7.1 为什么客户端要等待2MSL&#xff1f; 8.linux 中查看 TCP 的连接9.TCP 为什么要有…...

Spring-IOC部分

Spring-IOC部分 1.SpringBean的配置详解&#xff08;Bean标签&#xff09; &#xff08;1&#xff09;scope 默认情况下&#xff0c;单纯的Spring环境Bean的作用范围有两个&#xff1a;Singleton和Prototype singleton&#xff1a;单例&#xff0c;默认值&#xff0c;Spring…...

使用GitHub Actions构建CI/CD流程

GitHub Actions 简介 GitHub Actions 是一种自动化软件开发工作流的方式&#xff0c;与 GitHub.com 深度集成。开发人员可以通过配置 GitHub Actions 来实现基于事件触发的自动工作流&#xff0c;比如&#xff0c;当有任意用户向 master 分支提交代码时&#xff0c;自动执行一…...

Ubuntu服务器 无法正常启动redis

当我们在阿里云服务器上启动redis服务 运行下述命令时 service redis-server start 会出现如下报错 Failed to start redis-server.service: Unit redis-server.service not found. 如图&#xff1a; 解决方案&#xff1a; 通过以下命令重新安装Redis&#xff1a; sudo apt…...

MySQL 索引原理

一、索引基础概念 1. 索引是什么&#xff1f; 定义&#xff1a;索引是帮助MySQL高效获取数据的有序数据结构&#xff0c;类似书籍的目录。核心作用&#xff1a;减少磁盘I/O次数&#xff0c;提升查询速度&#xff08;以空间换时间&#xff09;。 2. 索引的优缺点 优点缺点加…...

前端快速入门学习3——CSS介绍与选择器

1.概述 CSS全名是cascading style sheets,中文名层叠样式表。 用于定义网页样式和布局的样式表语言。 通过 CSS&#xff0c;你可以指定页面中各个元素的颜色、字体、大小、间距、边框、背景等样式&#xff0c;从而实现更精确的页面设计。 HTML与CSS的关系&#xff1a;HTML相当…...

WPF 免费UI 控件HandyControl

示例效果和代码 直接可以用 Button 按钮 | HandyOrg 1.安装 , 输入 HandyControl 2.<!--配置HandyControl--> <!--配置HandyControl--> <ResourceDictionary Source"pack://application:,,,/HandyControl;component/Themes/SkinDefault.xaml"/> …...

【代码艺廊】pyside6桌面应用范例:homemade-toolset

在研发测试日常工作中&#xff0c;通常会遇到很多琐碎的事情&#xff0c;占用我们工作的时间和精力&#xff0c;从而导致我们不能把大部分的注意力放在主要的工作上面。为了解决这个问题&#xff0c;除了加人之外&#xff0c;我们通常会开发一些日常用的效率工具&#xff0c;比…...

Hive 常见面试 300 问

一、Hive 基础概念 什么是 Hive?它的主要用途是什么? Hive 与传统关系型数据库有什么区别? 简述 Hive 的架构,各个组件的作用是什么? 解释 Hive 中的元数据,它存储在哪里? Hive 支持哪些数据格式?各自的特点是什么? 什么是 Hive 表的分区?为什么要使用分区? 什么是 …...

OpenMinus 源码深度解析:从 React 模式到多智能体架构实现

OpenMinus 源码深度解析&#xff1a;从 React 模式到多智能体架构实现 本文基于 2024 年 3 月 9 日最新代码版本解析&#xff0c;完整代码已上传至 GitHub&#xff08;附项目地址https://github.com/mannaandpoem/OpenManus&#xff09; 一、项目背景与核心价值 1.1 项目定位 …...

【Linux网络与网络编程】04.TCP Socket编程

一、TCP Socket编程接口 // 创建套接字 int socket(int domain, int type, int protocol); // 参数&#xff1a; // domain&#xff1a;域&#xff08;协议家族&#xff09;&#xff0c;这里使用 AF_INET 表示进行网络编程 // type&#xff1a;网络通信传输的类型&#xff0…...

初识数据结构——算法效率的“两面性”:时间与空间复杂度全解析

&#x1f4ca; 算法效率的“两面性”&#xff1a;时间与空间复杂度全解析 1️⃣ 如何衡量算法好坏&#xff1f; 举个栗子&#x1f330;&#xff1a;斐波那契数列的递归实现 public static long Fib(int N) {if(N < 3) return 1;return Fib(N-1) Fib(N-2); }问题&#xf…...

CCF GESP C++编程 八级认证真题 2025年3月

C 八级 2025 年 03 月 题号 1 2 3 4 5 6 7 8 答案 B C B A D D D 一、单选题 第 1 题 国家“以旧换新”政策仍在继续&#xff0c;小杨家决定在家里旧的冰箱、电视、洗衣机、微波炉中选两种换新。其中&#xff0c;冰箱有4种型号可选&#xff0c;电视有6种型号可选&#xff0c…...

React: hook相当于函数吗?

一、Hook 是一个函数&#xff0c;但不仅仅是函数 函数的本质 Hook 确实是一个 JavaScript 函数&#xff0c;例如 useState、useEffect 或自定义 Hook 都是函数。它们可以接受参数&#xff08;如初始状态值或依赖项数组&#xff09;&#xff0c;并返回结果&#xff08;如状态值和…...

Git 从入门到精通(开源协作特别版)

&#x1f9e0; Git 从入门到精通&#xff08;开源协作特别版&#xff09; ✅ 基础命令 &#x1f9f0; 高级用法 &#x1f6e0;️ 开源实战技巧 &#x1f30d; GitHub 社区协作 适合&#xff1a;从0开始 → 熟练开发者 → 参与/维护开源项目 &#x1f530; 第1章&#xff1a;…...

《探索边缘计算:重塑未来智能物联网的关键技术》

最近研学过程中发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击链接跳转到网站人工智能及编程语言学习教程。读者们可以通过里面的文章详细了解一下人工智能及其编程等教程和学习方法。下面开始对正文内容的…...

什么是缓存穿透、缓存雪崩、缓存击穿?

什么是缓存&#xff1f; 缓存就是数据交换的缓冲区&#xff0c;是存贮数据的临时地方&#xff0c;一般读写性能较高。 怎么防止缓存穿透&#xff1f; 缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在&#xff0c;这样缓存永远不会生效&#xff0c;这些请求都会打到…...

洛谷题单3-P4956 [COCI 2017 2018 #6] Davor-python-流程图重构

题目描述 在征服南极之后&#xff0c;Davor 开始了一项新的挑战。下一步是在西伯利亚、格林兰、挪威的北极圈远征。 他将在 2018 年 12 月 31 日开始出发&#xff0c;在这之前需要一共筹集 n 元钱。 他打算在每个星期一筹集 x 元&#xff0c;星期二筹集 xk 元&#xff0c;……...

解决浏览器报错Mixed Content

前端代码写死了访问后端的请求为&#xff1a;http://service.xxx.com:8080/api/&#xff0c;前端代码中混合内容&#xff08;Mixed Content&#xff09; 导致的。浏览器使用https访问站点时&#xff0c;这个请求会被拦截&#xff0c;并且浏览器打印 login.vue:151 Mixed Conten…...

HCIP【BGP协议(详解)】

目录 1 BGP协议产生背景 2 BGP协议特性 2.1 自治系统间路由传播 2.2 路由矢量协议 2.3 防环机制 2.4 基于TCP传输 2.5 路由更新机制 2.6 丰富的路由属性 2.7 支持CIDR和路由聚合 2.8 路由过滤和策略控制 2.9 动态对等体功能 3 BGP基本术语 4 BGP规划问题 4.1 路…...

集合与容器:List、HashMap(II)

一、ArrayList 是集合框架中最核心的动态数组实现&#xff0c;高频使用的容器之一。 1. 核心数据结构 基于数组实现&#xff0c;维护elementData数组存储元素&#xff1a; transient修饰的elementData不会被默认序列化&#xff08;通过自定义序列化逻辑优化存储&#xff09;…...

mac 安装MySQL

1、打开官网&#xff0c;点击Downloads 2、在downloads页面选择MySQL Community Server 3、选择对应的设备和版本&#xff0c;点击下载 4、下载选择 5、下载完成后&#xff0c;点击安装 6、next 到Configguration 时要输入密码&#xff08;千万别忘记&#xff09; 7.最后输…...

Pascal语言的软件开发工具

使用Pascal语言的软件开发工具 引言 随着计算机科学的发展&#xff0c;编程语言层出不穷&#xff0c;程序员们在开发时可以选择多种多样的工具。而Pascal语言作为一种历史悠久的程序设计语言&#xff0c;尽管在当今编程语言的生态中已不再是主流&#xff0c;但其优雅的语法和…...

vue组件开发:什么是VUE组件?

什么是VUE组件 在我们实际开发过程中你也许会发现有很多代码是重复的&#xff0c;它们可能是一个按钮、一个表单、一个列表等等&#xff0c;其中最为显著的应该是列表。 以CSDN的首页为例&#xff1a; 上述截图中的文章列表可能会在多处出现&#xff0c;比如此截图是精选博客…...

如何在Springboot的Mapper中轻松添加新的SQL语句呀?

在如今的软件开发界&#xff0c;Spring Boot可是非常受欢迎的框架哦&#xff0c;尤其是在微服务和RESTful API的构建上&#xff0c;真的是让人爱不释手&#xff01;今天&#xff0c;我们就来聊聊如何为Spring Boot项目中的Mapper添加新的SQL语句吧&#xff01;说起来&#xff0…...

微服务架构: SpringCloud服务注册与发现详解

# 微服务架构: SpringCloud服务注册与发现详解 一、什么是微服务架构 微服务架构简介 微服务架构&#xff08;Microservices Architecture&#xff09;是一种以一组小型服务应用程序构建系统的软件架构风格。每个服务运行在自己的进程中&#xff0c;通过精简的HTTP API进行通信…...

现代简约杂志海报包装网页设计无衬线英文字体安装包 Seriusans – Condensed Sans Display Font

Seriusans 是一种 Condensed Sans Display 字体&#xff0c;将现代简约与大胆融为一体。其狭窄而醒目的字体营造出强大的存在感&#xff0c;使其成为有影响力设计的绝佳选择&#xff0c;例如海报、杂志标题、品牌、包装、网页设计、运动图形、社论布局、广告活动、企业演示&…...

C/C++的条件编译

一、什么是条件编译&#xff1f; 条件编译是指在编译阶段根据某些条件来决定是否编译某段代码。这通常通过预处理指令来实现&#xff0c;比如 #if、#ifdef、#ifndef、#else、#elif 和 #endif。 二、为什么使用条件编译&#xff1f; ​​跨平台开发​​&#xff1a;不同的操作…...

视野,,地面覆盖,重叠需求,FPS,飞行速度等的计算公式

一、计算相机视野与重叠需求 1. 相机参数 IDS UI-5280CP&#xff1a; 分辨率&#xff1a;2456x2054 像素。传感器&#xff1a;假设为 1/1.8" CMOS&#xff08;常见型号&#xff09;&#xff0c;尺寸约 6.78 mm&#xff08;宽&#xff09; 5.67 mm&#xff08;高&#xf…...

ARXML文件解析-1

目录 1 摘要2 ARXML文件2.1 作用及典型应用场景2.2 **ARXML文件的结构树**2.3 TAG&#xff08;XML元素&#xff09;2.4 ARXML文件关键元素解析2.4.1 XML声明与处理指令2.4.2 XML注释2.4.3 ADMIN-DATA元素2.4.3 语言相关元素2.4.5 AR-PACKAGE体系结构2.4.6. 数据转换框架2.4.7 S…...

传统开发者视角:智能合约与区块链数据库探秘

前言 在上一篇文章:探秘区块链开发:智能合约在 DApp 中的地位及与传统开发差异中我为大家从传统开发者的角度讲解了一下什么是智能合约。 简单的来说智能合约对于传统前端开发者可以说是API接口,而后端开发者则可以说是负责接口逻辑的程序。 然而从传统的开发意识跳跃到D…...

游戏引擎学习第204天

回顾并为今天的内容做铺垫 好&#xff0c;现在开始这一集。今天我们将进行一些用户界面编程&#xff0c;觉得这是一个展示如何编写这类代码的好时机。很多人对如何做用户界面代码都很好奇&#xff0c;所以展示一下如何编写是非常有意义的。 我之所以在现在的这个地方做这些工…...

蓝桥杯2024年第十五届省赛真题-R 格式

题目链接&#xff1a; 思路&#xff1a; 通过数组模拟d的每一位&#xff0c;逐位进行计算&#xff0c;从而实现对d的精确处理。 代码&#xff1a; #include<bits/stdc.h> #define int long long using namespace std; const int N 2020;int n; string s; vector<i…...

Haskell语言的区块链安全

Haskell语言在区块链安全中的应用 引言 随着区块链技术的发展&#xff0c;它已经成为金融、供应链管理、身份认证等多个领域的重要基础设施。然而&#xff0c;区块链的安全性问题一直是行业关注的焦点。为了确保区块链的安全性&#xff0c;开发者需要选择合适的编程语言来编写…...

BUUCTF-web刷题篇(11)

20.admin 这道题很可能用admin或者伪造admin进行登录&#xff0c;用admin进行登录&#xff0c;随便填写密码进不去&#xff0c;发现页面有register、login&#xff0c;用admin注册提示已经被注册。 方法一&#xff1a;&#xff08;burp爆破&#xff09; 进入登陆界面&#x…...

TensorFlow

TensorFlow 是一个由 Google 开发并开源的机器学习和深度学习库&#xff0c;被广泛应用于各类机器学习项目。以下为你详细介绍&#xff1a; 概述 TensorFlow 最初是为了满足 Google 内部大规模机器学习需求而研发&#xff0c;后于 2015 年开源。它提供了一个强大且灵活的生态…...

分子生成的深层次层次变分自编码器 - DrugHIVE 测评

一、背景介绍 DrugHIVE 来源于南加州大学定量与计算生物学系的 Remo Rohs 为通讯作者的文章&#xff1a;《Structure-Based Drug Design with a Deep Hierarchical Generative Model》。文章链接&#xff1a;https://pubs.acs.org/doi/10.1021/acs.jcim.4c01193。该文章在 202…...

54.大学生心理健康管理系统(基于springboot项目)

目录 1.系统的受众说明 2.相关技术 2.1 B/S结构 2.2 MySQL数据库 3.系统分析 3.1可行性分析 3.1.1时间可行性 3.1.2 经济可行性 3.1.3 操作可行性 3.1.4 技术可行性 3.1.5 法律可行性 3.2系统流程分析 3.3系统功能需求分析 3.4 系统非功能需求分析 4.系统设计…...

Linux文件特殊权限管理及进程和线程

acl 权限优先级 拥有者 > 特殊指定用户 > 权限多的组 >权限少的组 > 其他 mask阈值 mask是能够赋予指定用户权限的最大阀值 当设定完毕文件的acl列表之后用chmod缩小了文件拥有组的权力 mask会发生变化 恢复&#xff1a; setfacl -m m: 权限 :rwx 文件/…...

Vue2+Vue3 45-90集学习笔记

Vue2Vue3 45-90集学习笔记 小兔鲜首页 页面开发思路&#xff1a; 分析页面&#xff0c;按模块拆分组件&#xff0c;搭架子&#xff08;局部注册或全局注册&#xff09; 局部注册&#xff1a;App.js中 导入&#xff08;import&#xff09;&#xff0c;注册&#xff08;compon…...

【Web 服务器】的工作原理

&#x1f310; Web 服务器的工作原理 Web 服务器的主要作用是 接收客户端请求&#xff08;通常是浏览器发出的 HTTP/HTTPS 请求&#xff09;&#xff0c;处理请求&#xff0c;并返回相应的数据&#xff08;如网页、图片、API 响应等&#xff09;。 &#x1f4cc; 工作流程 1️…...

LeetCode 5 -- 区间DP | 中心拓展算法

题目描述 最长回文子串 数据规模为 5e5&#xff0c;必须 manacher 算法 1. DP 由于 r e v e r s e ( ) reverse() reverse() 的时间复杂度是 O ( N ) O(N) O(N)&#xff0c;因此暴力肯定是不行的。 d p dp dp 的思路&#xff1a;如果 s [ l . . r ] s[l..r] s[l..r] 是一个…...

IntelliJ IDEA中Spring Boot 3.4.x+集成Redis 7.x:最新配置与实战指南

‌前言 Spring Boot 3.4.x作为当前‌最新稳定版本‌&#xff0c;全面支持Java 17与Jakarta EE 10规范。本文以‌Spring Boot 3.4.1‌和‌Redis 7.x‌为例&#xff0c;详解如何在IDEA中快速接入Redis&#xff0c;涵盖‌最新依赖配置‌、‌数据序列化优化‌、‌缓存注解‌及‌高…...

数仓建模中计算累计销量

在数仓建模中计算累计销量&#xff0c;通常需要结合时间维度和业务逻辑设计合理的模型与计算逻辑。以下是分步骤的实现思路和示例&#xff1a; 1. 模型设计 累计销量的计算通常基于星型模型或雪花模型&#xff0c;核心结构包括&#xff1a; 事实表&#xff1a;记录每一笔销售…...

(多看) CExercise_05_1函数_1.2计算base的exponent次幂

题目&#xff1a; 键盘录入两个整数&#xff1a;底(base)和幂指数(exponent)&#xff0c;计算base的exponent次幂&#xff0c;并打印输出对应的结果。&#xff08;注意底和幂指数都可能是负数&#xff09; 提示&#xff1a;求幂运算时&#xff0c;基础的思路就是先无脑把指数转…...