C++(蓝桥杯常考点)
前言:这个是针对于蓝桥杯竞赛常考的C++内容,容器这些等下棋=期再讲
C++
在DEVC++中注释和取消注释的方法:ctrl+/
ASCII值(常用的):
A-Z:65-90
a-z:97-122
0-9:48-57
换行/n:10
科学计数法:eg:1e5(表示10^5)
sizeof()是用来计算数据类型长度的,返回值是size_t(无符号整数)
这个()还是加上好,里面可以是类型,变量名和表达式
里面如果是表达式的话,将不会去计算,而是返回结果类型的长度
sizeof(数组名)计算的是数组的总大小
类型的取值范围:
int是2的31次方-1或者10的9次方(大于了就会超范围)
long long是10的18次方(超过了就不行)
定义常量一般用const,定义的变量名一般用大写
取模操作符的操作数只能是整形
char类型和int类型(或char类型)加减的结果是int类型的,记得强转或者隐式转换)
(char的取值范围-128到127)
printf类型:
printf("%6.2f",0.5)表示输出字符串最小宽度是6,小数位数是2
也可以写为printf("%*.*f",6,2,0.5)
注意逻辑运算符的短路问题
switch的一个易忘用法:(switch的格式也容易忘)
switch(n%7)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf(“工作日/n”);
break;
case 6:
case 7:
printf(“休息日/n”);//这里可以搞多个语句,还不用{ }
break;
//有时还可能会用到default
}
case还可以eg:
case ‘+’:这个’+'一般是cin得到的
循环一般用for,除非需要n次循环,喜欢用while(n–){ }
并且循环条件可以用><的就不用==,不然容易错
条件判断:
对错只用执行一条语句的用三目操作符
exp1?exp2:exp3
用于判断的东西是指定的数或字符或字符串则用switch
否则就用if elseif else
cin cout和printf和scanf的取舍问题:
一般情况下用cin cout,除非:
超时和对输出格式有特殊要求
一般输入数据量大于1e6时,就用scanf和printf
continue易忘点:
for(int i = 0; i<10;i++)//continue跳过不了i++
{
if(i = 5)
continue;}
范围for常用来遍历数组
auto可以让编译器自动推导出变量的类型
如果给的小数,没有明确说明,一般auto后是double类型的
double在各编译器中的大小不同,因为一般用sizeof(double),浮点数自己一般用double类型的
有时数组从下标为1才开始放数很不错,数组空间一般多开辟10个
并且数组较大时一般搞成全局变量
易忘:int arr[][5]={{1,2},{3,4},{5,6}};则只有3行
二维数组在竞赛中很少用,一般用两个一维数组替代
字符数组一般用string替代,基本不用字符数组(string结尾不用’/0’)
读入:
遇见空白字符停止:scanf和cin可以读取空格的自己一般用getchar:
eg:
while((ch=getchar())!='\n');
如果是string的话,可以用getline,默认是遇到换行停止
在作用域优先级一样的话,库函数和自定义函数重名了的话,要么报错,要么会是自定义函数
/和\的用途:
/:
1.表除法
2.用于注释eg://
\:
1.作为转义字符eg:\n \0
2.用于续行符
字符串的比较是基于字典序进行的,比较的是对应位置上字符的ASCII值
int类型的值可以被强转为long long int
的值
cout在打印浮点数时,自动忽略小数点后多余的0;
printf在打印浮点数时,小数点默认打印6位
自定义函数的传值调用:
自定义函数实参是数组就只写数组名
形参是二维数组时,行可以省略,列不可以省略
实参名字和形参名字可以相同或不同
return返回的值会被隐式变换成函数返回值所对应类型的值在自定义函数前定义全局变量可以不用传参,在竞赛中常用
注意掌握传引用调用!!!
形参顺序不同也可以构成函数重载
正整数和无符号整数的原反补码相同
负整数:
原码->取反,+1->补码
补码->取反,+1->原码
补码->-1->反码
原码->取反->反码
(这里的取反不包括符号位)但是位运算操作符在操作时,符号位也会被操作
左移操作符:<<是左边抛弃,右边取0
右移操作符:>>是左边用原该值的符号位填充,右边抛弃
按位或 | :对应的二进制对应位有1,结果就为1
按位异或 ^ :对应二进制相同为0,相异为1
按位取反 ~ :…………^运算符的特点:(常用于找唯一奇数次出现的数)
x^x = 0
0^x = x
^是支持交换律的
前提:认为最低位为第0位保留二进制位中的指定位: x&m
使m对应取出位置为1,其他位为0;则x就被保留了指定位获取二进制位中的指定位: (x>>i)&1 (这个可以用于颠倒二进制位)
获取x中的第i位,结果为0则第i位为0,结果为1则第i位为1将指定二进制位设置为1: x|m
使m对应位置(想让x哪个位置变为1)为1,其余位置为0将指定二进制位设置为0: x&=~(1<<i)反转指定二进制位: x^m
想将x的第i位反转,要令m的第i位为1,其余位置为0将二进制中最右边的1变成0: x&(x-1)
这个运算通常运用于求一个数的二进制序列中有几个1保留二进制中最右边的1,其他位置均置为0: x&-x
2的n次方:1<<n
优先级和结合性都可以用()来解决
从右到左的结合性不用考虑,自己的记法是将这个考虑在内了的eg:+=
定义struct时的;别忘了
struct
{};//不管有没有变量名,都要有此
结构体变量名字和结构体类型名字不能重合
结构体可以进行整体赋值操作
结构体嵌套如何赋值和结构体的运算符怎么重载易忘
调用和容器一样,用.
运算符重载在设置时形参一般用引用
C++中常用的头文件和其中的库函数
#include <cstdio>
printf,scanf,getchar,putchar
常用占位符:
%lld:十进制long long int类型
%f:float类型
%lf:double类型
%Lf:long double类型
%u:unsigned int类型
%c %s %d
scanf相较于printf特有的:
%[]:eg:%[a-Z]:ASCII小的在前
%c不会跳过空白字符,除非%c之前加了一个空格
scanf在使用%s时,可以%[m]s来限制读取字符串的最大长度
#include<cmath>
fabs,ceil
fabs-求浮点数绝对值
ceil-对一个浮点数向上取整
floor-对一个浮点数向下取整
sqrt-计算非负实数的算数平方根
pow(x,y)-计算x的y次方的值
#include<cstdlib>
abs-求整数的绝对值(long long int类型的用不了)
#include<cctype>
islower-判断是否为小写字母,是则返回非0;不是则返回0
tolower-将大写字母转换成小写字母
isupper-判断是否为大写字母,是则返回非0;不是则返回0
toupper-将小写字母转换成大写字母
注意事项:这四个的返回值都是int类型的,记得(char),参数可以是char的也可以是int的
isdigit-判断是否为数字字符,是则返回非0;不是则返回0
isalpha-判断是否为字母,,是则返回非0,不是则返回0
#include<string>//这里面的全都是针对string的字符串的
size()-获取字符串长度
begin()-返回指向字符串第一个字符的迭代器
end()-返回指向字符串最后一个元素的下一个位置的迭代器
//迭代器可以进行加减整数运算;想获得迭代器指向的值,则要*
push_back()-在字符串尾部插入一个元素
pop_back()-删除字符串尾部的最后一个元素
insert-在字符串中间插入一个字符串
find()-用于查找字符串中指定东西,并返回其第一次出现位置的头
//其开始查找的位置可以指定,返回值是size_t类型的,没找到则返回npos
substr-用于截取字符串中指定位置指定长度的子串有关string的函数
stoi-把数字字符串转换成int类型的
stod-把数字字符串转换成double类型的
to_string-把整数和浮点数转换成字符串
#include<algorithm>
reverse-可以逆转字符串(整形数组也可以)
max-默认返回两个值中的最大值,当然也可以改
min-默认返回两个值中的最小值,当然也可以改
sort-默认按升序来排序,当然也可以改
查询具体用法:https://legacy.cplusplus.com/reference/
#include<utility>
swap-交换两个变量或数组或容器的值
其中蕴含的算法原理
scanf返回值表示成功读取的变量个数,在没成功读取的话会返回0或EOF我们一般会通过scanf的返回值来处理未给明确多少组数据的多组数据问题,
但是一般用cin(eg:cin>>l>>m>>n没读满3个会返回false)
整数计算想变成小数的方法:
假如a b都是int类型的 可以:a*1.0/b
浮点数比较相等的办法:
eg:
fabs(a-b)<1e9
关系操作符判断为真,返回的是1
常应用于多种情况满足一种时就干啥(至少满足一种用||,全满足用&&)
eg:if((a>1)+(b>1)=1)…………
纯数字读取:读取特定位置数字的方法:
eg:读第7位
scanf("%6d%d",&a,&b);b就是
获得最后几位数字的方法:
eg:最后三位
cin>>m;
n= m%1000//n就是不纯读取:
想读特定范围内的东西(eg:A-Z)
可以边读边用ASCII筛选
反向输出每一位(整数且位数固定):
cin>>a>>b>>……;
cout<<……<<b<<a;
加减交替:
int flag=1;
for(…………)
{ sum+=b*flag;
flag=-flag;}
判断m是否为质数:
int flag =1;
for(int i = 2;i<sqrt(m);i++ )
然后看m%i是否等于0,是就break,改flag为0
for外结算:如果flag为1,则m是质数
数据在下一次读取前用完就不要了的可以采取一边读取一边使用的方法,就不存了
如果还要用并且数据多的话,可以存在数组里
统计字符出现个数的方法:建立一个128的整形数组,下标正好和字符的ASCII值对应
如果单要字母的话可以建立一个26的整形数组,把读进来的-'a'就可以得对应下标了
想输出3,5,6,7,8,9,9,10
可以先输出一个3,再,5和,6这样
求多组数据中的最大值和最小值时,可以先令min和max为取值范围的两端来搞
需要一层套一层的一般就要用递归
eg:进制转换(十进制转x进制的)
数组分块问题:
1.利用辅助数组
每次遍历把特定东西拿出来放辅助数组里2.利用双指针(这里的指针指的是用变量来代替指针)
分为eg:[0,cur][cur+1,i-1][i,n-1](带扫描看情况放哪)存非0 存0 待扫描
下期会给大家总结数据结构的内容
相关文章:
C++(蓝桥杯常考点)
前言:这个是针对于蓝桥杯竞赛常考的C内容,容器这些等下棋期再讲 C 在DEVC中注释和取消注释的方法:ctrl/ ASCII值(常用的): A-Z:65-90 a-z:97-122 0-9:48-57 换行/n:10科学计数法:eg:…...

支付宝 IoT 设备入门宝典(下)设备经营篇
上篇介绍了支付宝 IoT 设备管理,但除了这些基础功能外,商户还可以利用设备进行一些运营动作,让设备更好的帮助自己,本篇就会以设备经营为中心,介绍常见的设备相关能力和问题解决方案。如果对上篇感兴趣,可以…...

蓝桥杯 之 填空题-位运算与循环
文章目录 循环握手问题门牌制作-循环小球反弹幸运数艺术与篮球跑步卡片 位运算3个1美丽的2024 位运算 可以关注这个Lowbit(x) 如何判断最低位是否是1? num&1 1就说明num最低位是1 循环 循环 握手问题 握手问题 思路分析: 可以直接计算出来&…...
iOS逆向工程概述与学习路线图
iOS逆向工程概述与学习路线图 欢迎各位加入我的iOS逆向工程专栏!在这个系列的第一篇文章中,我将为大家介绍iOS逆向工程的基本概念、应用场景以及完整的学习路线图,帮助大家建立清晰的学习框架。 什么是iOS逆向工程? 逆向工程&a…...

DeepSeek 助力 Vue3 开发:打造丝滑的时间选择器(Time Picker)
前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 DeepSeek 助力 Vue3 开发:打造丝滑的时间选择器(Time Picker)📚前言📚页面效果📚指令输入…...

基于 Ingress-Nginx 实现 mTLS 双向认证
目录 背景描述: TLS 和 MTLS 之间的差异 通过自签名证书启用双向 TLS 1. 生成证书 (1) 生成 CA(根证书颁发机构) (2) 生成 CA(根证书颁发机构) (3) 生成客户端证书 2. 在 Kubernetes 中配置 mTLS &#x…...

学到什么记什么(25.3.3)
Upload-labs 今日重新做了一下文件上传漏洞,这里第一题之前采用直接抓包改后缀名.jpg为.php,再写入一句话<?php phpinfo();?>然后放行,得到图片地址(可复制),本来直接访问图片地址即可得到敏感信息…...

【子网掩码计算器:Python + Tkinter 实现】
子网掩码计算器:Python Tkinter 实现 引言代码功能概述代码实现思路1. 界面设计2. 功能实现3. 事件处理 子网掩码计算器实现步骤1. 导入必要的库2. 定义主窗口类 SubnetCalculatorApp3. 创建菜单栏4. 创建界面组件5. 判断 IP 地址类别6. 计算子网信息7. 其他功能函…...
《解锁HarmonyOS NEXT高阶玩法:艺术图像识别功能开发全攻略》
在当今数字化时代,AI技术不断拓展其应用边界,为各行业带来前所未有的变革。在艺术领域,AI图像识别技术能够帮助艺术从业者、爱好者快速识别艺术品风格、作者,甚至挖掘艺术品背后的历史文化信息。本文将结合HarmonyOS NEXT API 12及…...
Spring Boot的启动流程
Spring Boot 的启动流程是一个复杂且有序的过程: 创建SpringApplication实例 — 调用run方法 — 启动完成(发布应用启动事件,配置环境,创建ApplicationContext,准备ApplicationContext,刷新ApplicationContext[【创建B…...

【通俗讲解电子电路】——从零开始理解生活中的电路(三)
实际应用案例:生活中的电子电路 ——拆解你身边的“隐形工程师” 1. 手电筒电路:最简单的直流系统 电路组成 电源:2节1.5V电池(串联3V)。 开关:按钮控制回路通断。 LED:发光二极管ÿ…...

TypeScript系列01-类型系统全解析
本文总结了 TypeScript 的类型系统基础,涵盖了: TypeScript 的价值:静态类型检查为 JavaScript 添加了类型安全保障基本类型系统:从原始类型到特殊类型(any、unknown、never)的完整介绍类型注解与推断&…...
ragflow-mysql 启动失败案例分析
一、问题描述 1.拉取RAGflow镜像失败 dependency failed to start: container ragflow-mysql is unhealthy2. 查询日志 docker logs ragflow-mysql显示 出现[rootlocalhost docker]# docker logs ragflow-mysql Fatal glibc error: CPU does not support x86-64-v2 Fatal …...
SslConnection::SslConnection()详解
一、🔍 SslConnection::SslConnection() 详解 这个构造函数的主要作用是: 创建 SSL 对象创建 BIO(I/O 缓冲区)初始化 SSL 服务器模式绑定回调函数(onRead() 处理接收数据) 📌 1. 初始化 SSL 相…...

unity lua属性绑定刷新
我们现在有一个 角色属性类叫heroModel,内容如下,当heroModel中的等级发生变化的时候,我们需要刷新界面显示等级信息,通常我们是在收到等级升级成功的协议的时候,发送一个事件,UI界面接受到这个事件的时候,刷新一下等级…...

Self-Pro: A Self-Prompt and Tuning Framework for Graph Neural Networks
Self-Pro: A Self-Prompt and Tuning Framework for Graph Neural Networks #paper/GFM/GNN-BASED# #paper/⭐⭐⭐# 注意:这篇文章是每个图一个GCN模型,而不是所有图一个GCN 模型 算是最早的涉及异配图的prompt了 贡献和动机: 非对…...
企业级-数据分类分级详细方案
一、方案背景 在数字化时代,数据成为企业和组织的核心资产。随着数据量的快速增长和数据应用场景的不断拓展,如何有效地管理和保护数据,确保数据的安全性、合规性和可用性,成为了亟待解决的问题。数据分类分级作为数据管理的基础工作,能够帮助企业清晰地了解自身的数据资…...

本地部署Qwen2.5-VL-7B-Instruct模型
本地部署Qwen2.5-VL-7B-Instruct模型 本地部署Permalink **创建环境** conda create -n qwenvl python3.11 -y# 报错: Solving environment: failedPackagesNotFoundError: The following packages are not available from current channels:# 处理: c…...
【前端】简单原生实例合集html,css,js
长期补充,建议关注收藏点赞。 目录 a标签设置不一样的花样(图片但不用img)侧边固定box分栏input各种类型iframe表单拖拽 a标签设置不一样的花样(图片但不用img) a标签里面不用嵌套img,直接设置为其bg-img即可 <!DOCTYPE html…...
【Spring】配置文件的使用
在Spring框架中,application.properties(或application.yml)文件用于配置Spring应用程序的各种属性。我们可以通过多种方式来使用这些配置,包括使用Value和ConfigurationProperties注解来绑定配置到Java对象。 下面是对不同配置类…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...

c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...

IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

深度学习习题2
1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲
文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...
MySQL JOIN 表过多的优化思路
当 MySQL 查询涉及大量表 JOIN 时,性能会显著下降。以下是优化思路和简易实现方法: 一、核心优化思路 减少 JOIN 数量 数据冗余:添加必要的冗余字段(如订单表直接存储用户名)合并表:将频繁关联的小表合并成…...

代码规范和架构【立芯理论一】(2025.06.08)
1、代码规范的目标 代码简洁精炼、美观,可持续性好高效率高复用,可移植性好高内聚,低耦合没有冗余规范性,代码有规可循,可以看出自己当时的思考过程特殊排版,特殊语法,特殊指令,必须…...
go 里面的指针
指针 在 Go 中,指针(pointer)是一个变量的内存地址,就像 C 语言那样: a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10,通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...