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 摘要:在传统的城市轨道交通设计方面,照明设计方案具有一定的弊端。随着计算机技术的发展,智能化技术渐渐步入人们的生活并成为主流,故在城市轨道交通中应用新型的照明控制设…...
macos 中ios系统升级,但是macos还是老系统,在手机上无法安装ios软件
https://github.com/filsv/iOSDeviceSupport 构建项目出现 解决的方法: 就可以了,...
Pytest+Allure生成可添加附件的测试报告
#测试套件层级 allure.feature("测试PecExplorer") #重试次数,粒度为用例,建议用例设计可重复性高 pytest.mark.flaky(reruns3) class TestPecExplorer:#功能模块层级allure.story("登录界面")#测试用例层级allure.title("Test…...
Spacedrive:开源跨平台文件管理 | 开源日报 No.57
denoland/deno Stars: 91.2k License: MIT Deno 是一个简单、现代和安全的 JavaScript 和 TypeScript 运行时,使用 V8 引擎并用 Rust 构建。其主要功能包括: 默认情况下具有高度安全性,除非显式启用,否则无法访问文件、网络或环…...
c# 同步异步锁
在 C# 中,synchronization(同步)和asynchronization(异步)锁都是用来保护共享资源的。在单线程环境中,这些锁不是必要的,但在多线程环境中,由于多个线程可以访问和修改同一资源&…...
【Spring AOP】统⼀数据返回格式
为什么需要统一数据返回格式? ⽅便前端程序员更好的接收和解析后端数据接⼝返回的数据。降低前端程序员和后端程序员的沟通成本,按照某个格式实现就⾏了,因为所有接⼝都是这样返回的。有利于项⽬统⼀数据的维护和修改。有利于后端技术部⻔的…...
python+django高校体育乒乓球场地预约管理系统_s2409
本系统提供给管理员对首页,个人中心,用户管理,乒乓球场管理,场地类型管理,场地预约管理,暂离申请管理,离开申请管理,管理员管理,留言反馈,系统管理等诸多功能进行管理。本系统对于用户输入的任何信息都进行了一定的验证,为管理员操…...
Python Selenium设计模式-POM
前言本文就python selenium自动化测试实践中所需要的POM设计模式进行分享,以便大家在实践中对POM的特点、应用场景和核心思想有一定的理解和掌握。 为什么要用POM 基于python selenium2开始UI级自动化测试并不是多么艰巨的任务。**只需要定位到元素,执…...
【计算机毕设选题推荐】网络在线考试系统SpringBoot+SSM+Vue
前言:我是IT源码社,从事计算机开发行业数年,专注Java领域,专业提供程序设计开发、源码分享、技术指导讲解、定制和毕业设计服务 项目名 网络在线考试系统 技术栈 SpringBootSSMVueMySQLMaven 文章目录 一、网络在线考试系统-环境…...
AUTOSAR汽车电子嵌入式编程精讲300篇-基于FPGA的LIN总线控制器设计与验证(续)
目录 3.2.3波特率发生模块 3.2.4数据采样模块 3.2.5校验和产生模块 3.2.6奇偶校验模块 3.2.7接收模块<...
Qt ModelView显示数据库数据
利用qt的model view来显示数据表userudps里的数据 用了一个label 两个combox和一个tableview,实现如下效果: 我这里用到是mysql数据库,一般配置mysql数据库就两种有驱动或者没驱动,有的话把mysql的bin目录的libmysql.dll复制到q…...
免费自助建站哪个平台好/优化设计四年级上册语文答案
https://www.pianshen.com/article/1958836725/...
武汉做网站华企加速器/网络广告的计费方式
文章目录引言1、Master选举中的几个重要角色2、选举何时会发生(何时触发选举)2.1 节点失效检测2.2 触发选举的两种情况3、选主流程3.1 连接线程实现:innerJoinCluster3.2 发现节点:DiscoveryNode3.3 选举临时Master节点࿱…...
工信部查网站备案/app下载推广
取(m堆)石子游戏 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1263 Accepted Submission(s): 754 Problem Descriptionm 堆石子,两人轮流取.只能在1堆中取.取完者胜.先取者负输出No.先取者胜输出Yes,然后输出…...
php网站做语言包/seo百度快照优化公司
也许你可能并不知晓,但数据安全之战每天确实在我们周围发生着。例如美国和以色列通过Stuxnet(蠕虫)病毒黑进伊朗的核武器研究数据库,并对离心机的转速做了更改,直接导致伊朗核武器的研究滞后两年之久;还有L…...
做棋盘游戏辅助的网站/网络营销的含义的理解
2019独角兽企业重金招聘Python工程师标准>>> 需求: 1.可以通过数据库配置cronExpression表达式,动态修改执行时间 2.不修改服务器环境支持集群架构:即保证集群环境下单实例运行 3.实现业务上的实时开启/停止控制功能 第一步&#…...
上海正规网站建设耗材/合肥网络推广软件
场景开发中经常需要用到定时任务,对于商城来说,定时任务尤其多,比如优惠券定时过期、订单定时关闭、微信支付2小时未支付关闭订单等等,都需要用到定时任务,但是定时任务本身有一个问题,一般来说我们都是通过…...