C++标准模板(STL)- 类型支持 (数值极限,min,lowest,max)
数值极限
提供查询所有基础数值类型的性质的接口
定义于头文件 <limits>
template< class T > class numeric_limits;
numeric_limits 类模板提供查询各种算术类型属性的标准化方式(例如 int 类型的最大可能值是 std::numeric_limits<int>::max() )。
成员函数
返回给定类型的最小有限值
std::numeric_limits<T>::min
| static T min() throw(); | (C++11 前) | |
| static constexpr T min() noexcept; | (C++11 起) |
返回数值类型 T 可表示的最小有限值。
对于有非正规的浮点类型, min 返回最小正正规值。注意此行为可能是非预期的,特别是在与 min 对整数类型的行为比较时。为找到没有比它更小的值的值,请用 numeric_limits::lowest 。
min 仅对有界类型和无界无符号类型意义,即表示负值的无限集的类型无有意义的最小值。
返回值
T | std::numeric_limits<T>::min() |
| /* non-specialized */ | T() |
| bool | false |
| char | CHAR_MIN |
| signed char | SCHAR_MIN |
| unsigned char | 0 |
| wchar_t | WCHAR_MIN |
| char8_t | 0 |
| char16_t | 0 |
| char32_t | 0 |
| short | SHRT_MIN |
| unsigned short | 0 |
| int | INT_MIN |
| unsigned int | 0 |
| long | LONG_MIN |
| unsigned long | 0 |
| long long | LLONG_MIN |
| unsigned long long | 0 |
| float | FLT_MIN |
| double | DBL_MIN |
| long double | LDBL_MIN |
调用示例
#include <iostream>
#include <string>
#include <limits>
#include <cstdint>
#include <cfloat>struct SName
{
};//偏特化
struct SPartSpec
{
};namespace std
{
template<>
struct numeric_limits<SPartSpec>
{static _GLIBCXX_USE_CONSTEXPR bool is_specialized = true;static _GLIBCXX_USE_CONSTEXPR bool is_signed = true;static _GLIBCXX_USE_CONSTEXPR bool is_integer = true;static _GLIBCXX_USE_CONSTEXPR bool is_exact = true;static _GLIBCXX_USE_CONSTEXPR bool has_infinity = true;static _GLIBCXX_USE_CONSTEXPR bool has_quiet_NaN = true;static _GLIBCXX_USE_CONSTEXPR bool has_signaling_NaN = true;static _GLIBCXX_USE_CONSTEXPR float_denorm_style has_denorm = denorm_present;static _GLIBCXX_USE_CONSTEXPR bool has_denorm_loss = true;static _GLIBCXX_USE_CONSTEXPR float_round_style round_style = round_toward_neg_infinity;static _GLIBCXX_USE_CONSTEXPR bool is_iec559 = true;static _GLIBCXX_USE_CONSTEXPR bool is_bounded = true;static _GLIBCXX_USE_CONSTEXPR bool is_modulo = true;static _GLIBCXX_USE_CONSTEXPR int digits = CHAR_BIT;static _GLIBCXX_USE_CONSTEXPR int digits10 = CHAR_BIT;static _GLIBCXX_USE_CONSTEXPR int max_digits10 = DECIMAL_DIG;static _GLIBCXX_USE_CONSTEXPR int radix = FLT_RADIX;static _GLIBCXX_USE_CONSTEXPR int min_exponent = FLT_MIN_EXP;static _GLIBCXX_USE_CONSTEXPR int min_exponent10 = FLT_MIN_10_EXP;static _GLIBCXX_USE_CONSTEXPR int max_exponent = FLT_MAX_EXP;static _GLIBCXX_USE_CONSTEXPR int max_exponent10 = FLT_MAX_EXP;static _GLIBCXX_USE_CONSTEXPR bool traps = true;static _GLIBCXX_USE_CONSTEXPR bool tinyness_before = true;static _GLIBCXX_CONSTEXPR intmin() _GLIBCXX_USE_NOEXCEPT { return CHAR_MIN ; }
};
}int main()
{std::cout << std::boolalpha;std::cout << "std::numeric_limits<bool>::min(): "<< std::numeric_limits<bool>::min() << std::endl;std::cout << "std::numeric_limits<char>::min(): "<< std::numeric_limits<char>::min() << std::endl;std::cout << "std::numeric_limits<signed char>::min(): "<< std::numeric_limits<signed char>::min() << std::endl;std::cout << "std::numeric_limits<unsigned char>::min(): "<< std::numeric_limits<unsigned char>::min() << std::endl;std::cout << "std::numeric_limits<wchar_t>::min(): "<< std::numeric_limits<wchar_t>::min() << std::endl;std::cout << "std::numeric_limits<char16_t>::min(): "<< std::numeric_limits<char16_t>::min() << std::endl;std::cout << "std::numeric_limits<char32_t>::min(): "<< std::numeric_limits<char32_t>::min() << std::endl;std::cout << "std::numeric_limits<short>::min(): "<< std::numeric_limits<short>::min() << std::endl;std::cout << "std::numeric_limits<unsigned short>::min(): "<< std::numeric_limits<unsigned short>::min() << std::endl;std::cout << "std::numeric_limits<int>::min(): "<< std::numeric_limits<int>::min() << std::endl;std::cout << "std::numeric_limits<unsigned int>::min(): "<< std::numeric_limits<unsigned int>::min() << std::endl;std::cout << "std::numeric_limits<long>::min(): "<< std::numeric_limits<long>::min() << std::endl;std::cout << "std::numeric_limits<unsigned long>::min(): "<< std::numeric_limits<unsigned long>::min() << std::endl;std::cout << "std::numeric_limits<long long>::min(): "<< std::numeric_limits<long long>::min() << std::endl;std::cout << "std::numeric_limits<unsigned long long>::min(): "<< std::numeric_limits<unsigned long long>::min() << std::endl;std::cout << "std::numeric_limits<float>::min(): "<< std::numeric_limits<float>::min() << std::endl;std::cout << "std::numeric_limits<double>::min(): "<< std::numeric_limits<double>::min() << std::endl;std::cout << "std::numeric_limits<long double>::min(): "<< std::numeric_limits<long double>::min() << std::endl;std::cout << "std::numeric_limits<std::string>::min(): "<< std::numeric_limits<std::string>::min() << std::endl;//必须偏特化
// std::cout << "std::numeric_limits<SName>::min(): "
// << std::numeric_limits<SName>::min() << std::endl;std::cout << "std::numeric_limits<SPartSpec>::min(): "<< std::numeric_limits<SPartSpec>::min() << std::endl;return 0;
}
输出

返回给定类型的最低有限值
std::numeric_limits<T>::lowest
| static constexpr T lowest() noexcept; | (C++11 起) |
返回数值类型 T 可表示的最低有限值,即满足无其他有限值 y 符合 y < x 的有限值 x 。这对于浮点类型不同于 std::numeric_limits<T>::min() 。仅对有界类型有意义。
返回值
T | std::numeric_limits<T>::lowest() |
| /* non-specialized */ | T(); |
| bool | false |
| char | CHAR_MIN |
| signed char | SCHAR_MIN |
| unsigned char | 0 |
| wchar_t | WCHAR_MIN |
| char8_t | 0 |
| char16_t | 0 |
| char32_t | 0 |
| short | SHRT_MIN |
| unsigned short | 0 |
| int | INT_MIN |
| unsigned int | 0 |
| long | LONG_MIN |
| unsigned long | 0 |
| long long | LLONG_MIN |
| unsigned long long | 0 |
| float | -FLT_MAX |
| double | -DBL_MAX |
| long double | -LDBL_MAX |
注意
尽管对于基础 C++ 浮点类型非真,可存在满足 std::numeric_limits<T>::lowest() != -std::numeric_limits<T>::max() 的第三方浮点类型 T 。\
调用示例
#include <iostream>
#include <string>
#include <limits>
#include <cstdint>
#include <cfloat>struct SName
{
};//偏特化
struct SPartSpec
{
};namespace std
{
template<>
struct numeric_limits<SPartSpec>
{static _GLIBCXX_USE_CONSTEXPR bool is_specialized = true;static _GLIBCXX_USE_CONSTEXPR bool is_signed = true;static _GLIBCXX_USE_CONSTEXPR bool is_integer = true;static _GLIBCXX_USE_CONSTEXPR bool is_exact = true;static _GLIBCXX_USE_CONSTEXPR bool has_infinity = true;static _GLIBCXX_USE_CONSTEXPR bool has_quiet_NaN = true;static _GLIBCXX_USE_CONSTEXPR bool has_signaling_NaN = true;static _GLIBCXX_USE_CONSTEXPR float_denorm_style has_denorm = denorm_present;static _GLIBCXX_USE_CONSTEXPR bool has_denorm_loss = true;static _GLIBCXX_USE_CONSTEXPR float_round_style round_style = round_toward_neg_infinity;static _GLIBCXX_USE_CONSTEXPR bool is_iec559 = true;static _GLIBCXX_USE_CONSTEXPR bool is_bounded = true;static _GLIBCXX_USE_CONSTEXPR bool is_modulo = true;static _GLIBCXX_USE_CONSTEXPR int digits = CHAR_BIT;static _GLIBCXX_USE_CONSTEXPR int digits10 = CHAR_BIT;static _GLIBCXX_USE_CONSTEXPR int max_digits10 = DECIMAL_DIG;static _GLIBCXX_USE_CONSTEXPR int radix = FLT_RADIX;static _GLIBCXX_USE_CONSTEXPR int min_exponent = FLT_MIN_EXP;static _GLIBCXX_USE_CONSTEXPR int min_exponent10 = FLT_MIN_10_EXP;static _GLIBCXX_USE_CONSTEXPR int max_exponent = FLT_MAX_EXP;static _GLIBCXX_USE_CONSTEXPR int max_exponent10 = FLT_MAX_EXP;static _GLIBCXX_USE_CONSTEXPR bool traps = true;static _GLIBCXX_USE_CONSTEXPR bool tinyness_before = true;static _GLIBCXX_CONSTEXPR intmin() _GLIBCXX_USE_NOEXCEPT { return CHAR_MIN ; }static _GLIBCXX_CONSTEXPR intlowest() _GLIBCXX_USE_NOEXCEPT { return CHAR_MIN ; }
};
}int main()
{std::cout << std::boolalpha;std::cout << "std::numeric_limits<bool>::lowest(): "<< std::numeric_limits<bool>::lowest() << std::endl;std::cout << "std::numeric_limits<char>::lowest(): "<< std::numeric_limits<char>::lowest() << std::endl;std::cout << "std::numeric_limits<signed char>::lowest(): "<< std::numeric_limits<signed char>::lowest() << std::endl;std::cout << "std::numeric_limits<unsigned char>::lowest(): "<< std::numeric_limits<unsigned char>::lowest() << std::endl;std::cout << "std::numeric_limits<wchar_t>::lowest(): "<< std::numeric_limits<wchar_t>::lowest() << std::endl;std::cout << "std::numeric_limits<char16_t>::lowest(): "<< std::numeric_limits<char16_t>::lowest() << std::endl;std::cout << "std::numeric_limits<char32_t>::lowest(): "<< std::numeric_limits<char32_t>::lowest() << std::endl;std::cout << "std::numeric_limits<short>::lowest(): "<< std::numeric_limits<short>::lowest() << std::endl;std::cout << "std::numeric_limits<unsigned short>::lowest(): "<< std::numeric_limits<unsigned short>::lowest() << std::endl;std::cout << "std::numeric_limits<int>::lowest(): "<< std::numeric_limits<int>::lowest() << std::endl;std::cout << "std::numeric_limits<unsigned int>::lowest(): "<< std::numeric_limits<unsigned int>::lowest() << std::endl;std::cout << "std::numeric_limits<long>::lowest(): "<< std::numeric_limits<long>::lowest() << std::endl;std::cout << "std::numeric_limits<unsigned long>::lowest(): "<< std::numeric_limits<unsigned long>::lowest() << std::endl;std::cout << "std::numeric_limits<long long>::lowest(): "<< std::numeric_limits<long long>::lowest() << std::endl;std::cout << "std::numeric_limits<unsigned long long>::lowest(): "<< std::numeric_limits<unsigned long long>::lowest() << std::endl;std::cout << "std::numeric_limits<float>::lowest(): "<< std::numeric_limits<float>::lowest() << std::endl;std::cout << "std::numeric_limits<double>::lowest(): "<< std::numeric_limits<double>::lowest() << std::endl;std::cout << "std::numeric_limits<long double>::lowest(): "<< std::numeric_limits<long double>::lowest() << std::endl;std::cout << "std::numeric_limits<std::string>::lowest(): "<< std::numeric_limits<std::string>::lowest() << std::endl;//必须偏特化
// std::cout << "std::numeric_limits<SName>::lowest(): "
// << std::numeric_limits<SName>::lowest() << std::endl;std::cout << "std::numeric_limits<SPartSpec>::lowest(): "<< std::numeric_limits<SPartSpec>::lowest() << std::endl;return 0;
}
输出

返回给定类型的最大有限值
std::numeric_limits<T>::max
| static T max() throw(); | (C++11 前) | |
| static constexpr T max() noexcept; | (C++11 起) |
返回数值类型 T 所能表示的最大有限值。对所有有界类型有意义。
返回值
T | std::numeric_limits<T>::max() |
| /* non-specialized */ | T() |
| bool | true |
| char | CHAR_MAX |
| signed char | SCHAR_MAX |
| unsigned char | UCHAR_MAX |
| wchar_t | WCHAR_MAX |
| char8_t | UCHAR_MAX |
| char16_t | UINT_LEAST16_MAX |
| char32_t | UINT_LEAST32_MAX |
| short | SHRT_MAX |
| unsigned short | USHRT_MAX |
| int | INT_MAX |
| unsigned int | UINT_MAX |
| long | LONG_MAX |
| unsigned long | ULONG_MAX |
| long long | LLONG_MAX |
| unsigned long long | ULLONG_MAX |
| float | FLT_MAX |
| double | DBL_MAX |
| long double | LDBL_MAX |
调用示例
#include <iostream>
#include <string>
#include <limits>
#include <cstdint>
#include <cfloat>struct SName
{
};//偏特化
struct SPartSpec
{
};namespace std
{
template<>
struct numeric_limits<SPartSpec>
{static _GLIBCXX_USE_CONSTEXPR bool is_specialized = true;static _GLIBCXX_USE_CONSTEXPR bool is_signed = true;static _GLIBCXX_USE_CONSTEXPR bool is_integer = true;static _GLIBCXX_USE_CONSTEXPR bool is_exact = true;static _GLIBCXX_USE_CONSTEXPR bool has_infinity = true;static _GLIBCXX_USE_CONSTEXPR bool has_quiet_NaN = true;static _GLIBCXX_USE_CONSTEXPR bool has_signaling_NaN = true;static _GLIBCXX_USE_CONSTEXPR float_denorm_style has_denorm = denorm_present;static _GLIBCXX_USE_CONSTEXPR bool has_denorm_loss = true;static _GLIBCXX_USE_CONSTEXPR float_round_style round_style = round_toward_neg_infinity;static _GLIBCXX_USE_CONSTEXPR bool is_iec559 = true;static _GLIBCXX_USE_CONSTEXPR bool is_bounded = true;static _GLIBCXX_USE_CONSTEXPR bool is_modulo = true;static _GLIBCXX_USE_CONSTEXPR int digits = CHAR_BIT;static _GLIBCXX_USE_CONSTEXPR int digits10 = CHAR_BIT;static _GLIBCXX_USE_CONSTEXPR int max_digits10 = DECIMAL_DIG;static _GLIBCXX_USE_CONSTEXPR int radix = FLT_RADIX;static _GLIBCXX_USE_CONSTEXPR int min_exponent = FLT_MIN_EXP;static _GLIBCXX_USE_CONSTEXPR int min_exponent10 = FLT_MIN_10_EXP;static _GLIBCXX_USE_CONSTEXPR int max_exponent = FLT_MAX_EXP;static _GLIBCXX_USE_CONSTEXPR int max_exponent10 = FLT_MAX_EXP;static _GLIBCXX_USE_CONSTEXPR bool traps = true;static _GLIBCXX_USE_CONSTEXPR bool tinyness_before = true;static _GLIBCXX_CONSTEXPR intmin() _GLIBCXX_USE_NOEXCEPT { return CHAR_MIN ; }static _GLIBCXX_CONSTEXPR intlowest() _GLIBCXX_USE_NOEXCEPT { return CHAR_MIN ; }static _GLIBCXX_CONSTEXPR intmax() _GLIBCXX_USE_NOEXCEPT { return CHAR_MAX ; }
};
}int main()
{std::cout << std::boolalpha;std::cout << "std::numeric_limits<bool>::max(): "<< std::numeric_limits<bool>::max() << std::endl;std::cout << "std::numeric_limits<char>::max(): "<< std::numeric_limits<char>::max() << std::endl;std::cout << "std::numeric_limits<signed char>::max(): "<< std::numeric_limits<signed char>::max() << std::endl;std::cout << "std::numeric_limits<unsigned char>::max(): "<< std::numeric_limits<unsigned char>::max() << std::endl;std::cout << "std::numeric_limits<wchar_t>::max(): "<< std::numeric_limits<wchar_t>::max() << std::endl;std::cout << "std::numeric_limits<char16_t>::max(): "<< std::numeric_limits<char16_t>::max() << std::endl;std::cout << "std::numeric_limits<char32_t>::max(): "<< std::numeric_limits<char32_t>::max() << std::endl;std::cout << "std::numeric_limits<short>::max(): "<< std::numeric_limits<short>::max() << std::endl;std::cout << "std::numeric_limits<unsigned short>::max(): "<< std::numeric_limits<unsigned short>::max() << std::endl;std::cout << "std::numeric_limits<int>::max(): "<< std::numeric_limits<int>::max() << std::endl;std::cout << "std::numeric_limits<unsigned int>::max(): "<< std::numeric_limits<unsigned int>::max() << std::endl;std::cout << "std::numeric_limits<long>::max(): "<< std::numeric_limits<long>::max() << std::endl;std::cout << "std::numeric_limits<unsigned long>::max(): "<< std::numeric_limits<unsigned long>::max() << std::endl;std::cout << "std::numeric_limits<long long>::max(): "<< std::numeric_limits<long long>::max() << std::endl;std::cout << "std::numeric_limits<unsigned long long>::max(): "<< std::numeric_limits<unsigned long long>::max() << std::endl;std::cout << "std::numeric_limits<float>::max(): "<< std::numeric_limits<float>::max() << std::endl;std::cout << "std::numeric_limits<double>::max(): "<< std::numeric_limits<double>::max() << std::endl;std::cout << "std::numeric_limits<long double>::max(): "<< std::numeric_limits<long double>::max() << std::endl;std::cout << "std::numeric_limits<std::string>::max(): "<< std::numeric_limits<std::string>::max() << std::endl;//必须偏特化
// std::cout << "std::numeric_limits<SName>::max(): "
// << std::numeric_limits<SName>::max() << std::endl;std::cout << "std::numeric_limits<SPartSpec>::max(): "<< std::numeric_limits<SPartSpec>::max() << std::endl;return 0;
}
输出

相关文章:
C++标准模板(STL)- 类型支持 (数值极限,min,lowest,max)
数值极限 提供查询所有基础数值类型的性质的接口 定义于头文件 <limits> template< class T > class numeric_limits; numeric_limits 类模板提供查询各种算术类型属性的标准化方式(例如 int 类型的最大可能值是 std::numeric_limits<int>::m…...
国际SPEC CPU创榜以来整机最高纪录!浪潮信息八路服务器TS860G7刷新权威算力基准评测性能
近日,国际标准性能评估组织SPEC发布新一轮SPEC CPU2017通用算力性能测试榜单,浪潮信息八路服务器TS860G7以3940分获得SPEC CPU创榜以来整机性能最佳成绩,打破了单系统服务器性能世界纪录,较之前的测试最高分提升10%。 SPEC CPU201…...
【linux】重定向+缓冲区
重定向缓冲区 1.重定向1.1重定向本质1.2重定向接口1.3重定向分类1.3.1>输出重定向1.3.2>>追加重定向1.3.3<输入重定向 2.理解 >, >>, <3.如何理解linux下一切皆文件4.缓冲区4.1理解缓冲区问题4.1.1为什么要有缓冲区4.1.2缓冲区刷…...
【vim 学习系列文章 10 -- vim 将代码中空格高亮显示方法】
文章目录 vim 高亮空格使用背景如何配置vim 可以自动显示空格呢?vim highlight 命令使用介绍vim 空白行的处理vim match 命令详细介绍 vim 高亮空格使用背景 开发人员在编写代码之后,在review通过之后会将代码推到服务器然后merge,但是有些代…...
吴恩达深度学习笔记
B站看的视频,课太长了,180多节,但搬运的没有作业练习,最好找个能练习的 1,假设模型时,以前(2011版机器学习)用西塔代表参数组成的向量,现在用w代表参数组成的向量,b代表西塔0&#x…...
基于SpringBoot的医疗预约服务管理系统
基于SpringBootVue的医疗预约服务管理系统的设计与实现~ 开发语言:Java数据库:MySQL技术:SpringBootMyBatisVue工具:IDEA/Ecilpse、Navicat、Maven 系统展示 主页 登陆界面 管理员界面 医生界面 会员界面 摘要 基于SpringBoot的…...
Java本地缓存的使用
在项目开发中,经常会碰到一些数据量小、但使用频率极高的数据。比如,团队到BU的映射表。此类数据通常不会变动,使用频率高且数据量较小,如果每次使用都去数据库查询,代价比较大,可以考虑在项目启动时将此类…...
华为数通方向HCIP-DataCom H12-831题库(单选题:281-300)
第281题 如图所示,某工程师利用4台路由器进行网络互通测试,其中R1、R2、R3部署OSPF (Area0)实现网络互通,R2、R3、R4部署IS-IS(均部署为Level-2路由器)实现网络互通,现在该工程师在R1的OSPF进程中引入直连路由,在R2的IS-IS进程中引入OSPF路由,则以下关于该场景的描述,正…...
【分享Python代码】图片转化为素描画
哈喽,大家好,我是木易巷~ 代码生成效果图 原图: 生成图: 原图: 生成图: 准备工作 Python编程首先需要安装环境,下面是详细步骤: 会的小伙伴可自行跳过,代码在最后 1…...
汇川Easy521PLC与压力传感器485通讯实例
本例是汇川Easy521PLC与支持485通讯的压力传感器进行通讯的实例记录。对于初次使用汇川PLC的朋友,可能有借鉴的意义。 配置: 1、汇川Easy521PLC 2、美控压力变送器 3、汇川Autoshop编程软件 将压力变送器的485线与PLC本体的485端子一一连接: 485+:A+ 485-:B- 一般485的标…...
创意作品管理软件 Bridge 2024 mac中文版 br2024功能特色
Bridge 2024 mac旨在连接不同的Ad obe应用程序,帮助用户更轻松地管理和编辑他们的创意作品。 Bridge 2024 mac软件特色和功能介绍 一致的用户体验:Bridge 2024现在具有增强的用户界面,可提供与其他Creative Cloud应用程序类似的体验。用户还…...
【分享】教你加速访问GitHub,进来学!
哈喽,大家好,木易巷来啦! 众所周知,Github是一款程序猿必备的代码托管平台,上面已经存在了无数前辈的心血!经常需要在上面查看大佬写的一些好用的开源项目,无赖国外网站的速度实在让人难以接受。…...
利用在线培训系统提升员工技能,助力企业发展
近年来,随着互联网技术的发展,在线培训系统逐渐成为企业提升员工技能的利器。这种新型的培训方式打破了时间和空间的限制,为企业提供了更加灵活和高效的培训解决方案。下面,我们将详细介绍如何利用在线培训系统提升员工技能&#…...
深度学习小工具:Linux 环境下的用户命令和脚本顺序执行器
前言 深度学习跑代码的时候,需要跑很多个对比实验,要么开多个窗口并行执行代码,要么就写在一个 .sh 文件里面顺序执行,前面一种并行执行多个任务出结果很慢,而后一种如果想添加任务或者删除某个任务就得全部停止&…...
c# WPF 应用程序在屏幕上居中显示
xaml<Window ... WindowStartupLocation"CenterScreen">...
JVM之class文件结构剖析
文章目录 0.前言1. 引言1.1 Java编译原理基础1.2 Class文件在Java编译过程中的角色 2. Class文件的整体结构2.1 Class 文件组成 3. Class文件的详细解析3.1 魔数与版本号的作用和意义3.2 常量池的结构和作用3.3 访问标志的含义和可能的值3.4 类索引、父类索引和接口索引集合的作…...
TDengine 签约中石化,支撑八大油田 PCS 系统
近日,TDengine 成功签约中国石化 PCS 一级部署时序数据库项目。未来,TDengine 将作为中国石化 PCS 系统的时序数据库,为石化总部、胜利油田、西北油田、中原油田、河南油田、华北油田、江苏油田、华东油田、江汉油田等油田 PCS 系统提供高效、…...
win11 定时计划任务
控制面板 任务计划 添加任务计划 ,选按步骤添加。...
C++入门之引用与内联函数
一、引用 1、初步理解 引用在语法上的理解就是起别名,用法就是在类型后面加&,例子:int a 1; int& b a; 上例所示,执行后,b就是a的别名,它们代表同一块空间,a的改变会影响b࿰…...
浅谈智能照明控制系统应用在城市轨道交通
叶根胜 江苏安科瑞电器制造有限公司 江苏江阴 214405 摘要:在传统的城市轨道交通设计方面,照明设计方案具有一定的弊端。随着计算机技术的发展,智能化技术渐渐步入人们的生活并成为主流,故在城市轨道交通中应用新型的照明控制设…...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
MySQL的pymysql操作
本章是MySQL的最后一章,MySQL到此完结,下一站Hadoop!!! 这章很简单,完整代码在最后,详细讲解之前python课程里面也有,感兴趣的可以往前找一下 一、查询操作 我们需要打开pycharm …...
API网关Kong的鉴权与限流:高并发场景下的核心实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中,API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关,Kong凭借其插件化架构…...
云原生周刊:k0s 成为 CNCF 沙箱项目
开源项目推荐 HAMi HAMi(原名 k8s‑vGPU‑scheduler)是一款 CNCF Sandbox 级别的开源 K8s 中间件,通过虚拟化 GPU/NPU 等异构设备并支持内存、计算核心时间片隔离及共享调度,为容器提供统一接口,实现细粒度资源配额…...
GraphQL 实战篇:Apollo Client 配置与缓存
GraphQL 实战篇:Apollo Client 配置与缓存 上一篇:GraphQL 入门篇:基础查询语法 依旧和上一篇的笔记一样,主实操,没啥过多的细节讲解,代码具体在: https://github.com/GoldenaArcher/graphql…...
【实施指南】Android客户端HTTPS双向认证实施指南
🔐 一、所需准备材料 证书文件(6类核心文件) 类型 格式 作用 Android端要求 CA根证书 .crt/.pem 验证服务器/客户端证书合法性 需预置到Android信任库 服务器证书 .crt 服务器身份证明 客户端需持有以验证服务器 客户端证书 .crt 客户端身份…...
Java数组Arrays操作全攻略
Arrays类的概述 Java中的Arrays类位于java.util包中,提供了一系列静态方法用于操作数组(如排序、搜索、填充、比较等)。这些方法适用于基本类型数组和对象数组。 常用成员方法及代码示例 排序(sort) 对数组进行升序…...
Spring是如何实现无代理对象的循环依赖
无代理对象的循环依赖 什么是循环依赖解决方案实现方式测试验证 引入代理对象的影响创建代理对象问题分析 源码见:mini-spring 什么是循环依赖 循环依赖是指在对象创建过程中,两个或多个对象相互依赖,导致创建过程陷入死循环。以下通过一个简…...
