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

蓝桥杯算法日常|c\c++常用竞赛函数总结备用

一、字符处理相关函数

  • 大小写判断函数
    • islower和isupper:是C++标准库中的字符分类函数,用于检查一个字符是否为小写字母或大写字母,需包含头文件cctype.h(也可用万能头文件包含)。返回布尔类型值。例如:
#include <iostream> 
#include <cctype.h> 
int main() { 
char c1 = 'a';
char c2 = 'A'; 
if (islower(c1)) { 
std::cout << "is lowercase letter" << std::endl;}else {
std::cout << "not a lowercase letter" << std::endl; 
} 
if (isupper(c2)) { 
std::cout << "is uppercase letter" << std::endl;
}else { 
std::cout << "not a uppercase letter" << std::endl; 
}
return 0; 
}
  • 大小写转换函数
    • tolower和toupper:tolower(char c)可以将c转换为小写字母,如果c是小写字母则不进行操作;toupper函数同理。例如:
#include <iostream> 
int main() { 
char c1 = 'A';char c2 = 'b';char lowercasec1 = tolower(c1);std::cout << c1 << "的小写形式为:" << lowercasec1 << std::endl;char uppercasec2 = toupper(c2);std::cout << c2 << "的大写形式为:" << uppercasec2 << std::endl;return 0; 
}
  • ASCII码表转换大小写使用:c-'A'+'a';        c-'a'+'A';
  • 字符1变成数字1 可以:'1'-'0'

 

二、排序相关函数

  • sort函数
    • 基本信息:sort函数包含在头文件algorithm中(也可使用万能头文件),是一个函数模板,用于对指定范围内的元素进行排序,使用的是快速排序(QuickSort)或者类似快速排序的改进算法,一般平均时间复杂度为O(nlogn)。
    • 用法:sort(起始地址,结束地址的下一位,*比较函数)。例如:
 

#include <iostream> #include <algorithm> // #include <bits/stdc++.h> using namespace std; int main() { int a[1000]; int n; cin >> n; for (int i = 1; i <= n; i++) cin >> a[i]; sort(a + 1, a + n + 1); for (int i = 1; i <= n; i++) cout << a[i] << " "; return 0; }

 

- **自定义比较函数**:sort默认使用小于号进行排序,如果想要自定义比较规则,可以传入第三个参数(可以是函数或lambda表达式)[3]()。

三、数学函数

  • 常用数学函数:abs(求绝对值)、ceil(向上取整)、floor(向下取整)、sqrt(求平方根)、pow(幂运算)、log(对数运算)、exp(指数运算)、sin(正弦函数)、cos(余弦函数)、tan(正切函数)等。

四、字符串函数

  • char类型相关:strlen(求字符串长度)、strcmp(比较两个字符串)、strcpy(字符串复制)、strcat(字符串连接)、strstr(在一个字符串中查找另一个字符串)、isdigit(判断字符是否为数字)、isalpha(判断字符是否为字母)等。
  • string类相关:.size()(获取字符串长度,等同于length())、.empty()(判断字符串是否为空)、.clear()(清空字符串)、.append()(追加字符串)、.insert()(插入字符串)、.erase()(删除字符串中的字符)、.replace()(替换字符串中的字符)、.substr()(获取子字符串)、.find()(查找字符或子字符串)、rfind()(从右向左查找字符或子字符串)、.compare()(比较字符串)、.c_str()(转换为C风格字符串)、.stoi()(将字符串转换为整型)、.stod()(将字符串转换为双精度型)、.to_string()(将数字转换为字符串)等。

五、STL容器相关函数

  • vector(动态数组)
    • 使用push_back()添加元素,使用[]或at()访问元素,使用size()获取元素个数。
  • deque(双端队列):暂未详细提及用法。
  • list(双向链表)
    • 使用push_back()和push_front()添加元素,使用begin()和end()访问元素,使用size()获取元素个数。
  • set(集合)
    • 红黑树结构,使用insert()添加元素,使用find()查找元素,使用size()获取元素个数。
  • map(映射):暂未详细提及特殊用法。
  • unordered_set(哈希表)
    • 使用insert()添加元素,使用find()查找元素,使用size()获取元素个数。
  • unordered_map(哈希表):暂未详细提及特殊用法。

六、其他函数

  • 输入输出函数:例如iostream中的cin和cout用于基本的输入输出操作。
  • memset、memcpy:用于内存的设置和复制操作。
  • rand、time:rand用于生成随机数,time可用于获取时间(常与随机数生成配合使用,如设置随机数种子)。
  • assert:用于在程序中进行断言检查,如果条件不满足则终止程序。
  • atoi:将字符串转换为整型。

七、二分查找

前提是库函数只能对数组进行二分查找,数组中的元素都是单调的。

binary_search(numbers.begin(),numbers.end(),target);函数确定序列中是否存在某元素,返回bool值。

未完待续

相关文章:

蓝桥杯算法日常|c\c++常用竞赛函数总结备用

一、字符处理相关函数 大小写判断函数 islower和isupper&#xff1a;是C标准库中的字符分类函数&#xff0c;用于检查一个字符是否为小写字母或大写字母&#xff0c;需包含头文件cctype.h&#xff08;也可用万能头文件包含&#xff09;。返回布尔类型值。例如&#xff1a; #…...

每日十题八股-2025年1月24日

1.面试官&#xff1a;Kafka 百万消息积压如何处理&#xff1f; 2.面试官&#xff1a;最多一次、至少一次和正好一次有什么区别? 3.面试官&#xff1a;你项目是怎么存密码的? 4.面试官&#xff1a;如何设计一个分布式ID&#xff1f; 5.面试官&#xff1a;单点登录是怎么工作的…...

tomcat的accept-count、max-connections、max-threads三个参数的含义

tomcat的accept-count、max-connections、max-threads三个参数的含义 tomcat的accept-count、max-connections、max-threads三个参数的含义 max-connections&#xff1a;最大连接数 最大连接数是指&#xff0c;同一时刻&#xff0c;能够连接的最大请求数 需要注意的是&#x…...

【无标题】mysql python 连接

coding:utf8 import os import pymysql import yaml from common.log import logger class Mysql: # 处理.sql备份文件为SQL语句 def __read_sql_file(self,file_path): # 打开SQL文件到f sql_list = [] with open(file_path, ‘r’, encoding=‘utf8’) as f: # 逐行读取和…...

linux naive代理设置

naive linux客户端 Release v132.0.6834.79-2 klzgrad/naiveproxy GitHub Client setup Run ./naive with the following config.json to get a SOCKS5 proxy at local port 1080. {"listen": "socks://127.0.0.1:1080","proxy": "htt…...

[STM32 - 野火] - - - 固件库学习笔记 - - -十一.电源管理系统

一、电源管理系统简介 电源管理系统是STM32硬件设计和系统运行的基础&#xff0c;它不仅为芯片本身提供稳定的电源&#xff0c;还通过多种电源管理功能优化功耗、延长电池寿命&#xff0c;并确保系统的可靠性和稳定性。 二、电源监控器 作用&#xff1a;保证STM32芯片工作在…...

DBO优化最近邻分类预测matlab

蜣螂优化算法&#xff08;Dung Beetle Optimizer&#xff0c;简称 DBO&#xff09;作为一种新兴的群智能优化算法&#xff0c;于 2022 年末被提出&#xff0c;其灵感主要来源于蜣螂的滚球、跳舞、觅食、偷窃以及繁殖等行为。 本次使用的数据为 Excel 格式的分类数据集。该数据…...

【深入理解FFMPEG】命令行阅读笔记

这里写自定义目录标题 第三章 FFmpeg工具使用基础3.1 ffmpeg常用命令3.1.13.1.3 转码流程 3.2 ffprobe 常用命令3.2.1 ffprobe常用参数3.2.2 ffprobe 使用示例 3.3 ffplay常用命令3.3.1 ffplay常用参数3.3.2 ffplay高级参数3.3.4 ffplay快捷键 第4章 封装与解封装4.1 视频文件转…...

图形化数据报文转换映射工具

目录 概要整体架构流程技术名词解释技术细节小结 概要 在当今数字化时代&#xff0c;数据的处理和分析是企业、科研机构以及各类组织日常运营的核心环节。数据来源广泛&#xff0c;格式多样&#xff0c;常见的数据格式包括XML&#xff08;可扩展标记语言&#xff09;和JSON&a…...

智能体0门槛开发

分享一个智能体开发流程。 2025 年啊&#xff0c;好多专家还有行业报告都觉得这是智能体&#xff08;AI Agent&#xff09;应用的头一年。相关的应用在商业、工业、消费等好些领域都到了关键的时候&#xff0c;这意味着从实验室走向大规模实际应用的重要转变。而且呢&#xff0…...

ssh密钥登录GitHub时一直提示“Error: Permission denied (publickey)”

起因 环境&#xff1a;Windows10 背景&#xff1a;之前就是按照官方说明创建个rsa密钥&#xff0c;在git后台添加上&#xff0c;就行了&#xff0c;近期怎么添加怎么失败&#xff0c;总是“Error: Permission denied (publickey)”的提示&#xff01; 尝试 各种尝试&#xf…...

mapbox加载geojson,鼠标移入改变颜色,设置样式以及vue中的使用

全国地图json数据下载地址 目录 html加载全部代码 方式一&#xff1a;使用html方式加载geojson 1. 初始化地图 2. 加载geojson数据 设置geojson图层样式&#xff0c;设置type加载数据类型 设置线条 鼠标移入改变颜色&#xff0c;设置图层属性&#xff0c;此处是fill-extru…...

考研机试题:打印日期

描述 给出年分m和一年中的第n天&#xff0c;算出第n天是几月几号。 输入描述: 输入包括两个整数y(1<y<3000)&#xff0c;n(1<n<366)。 输出描述: 可能有多组测试数据&#xff0c;对于每组数据&#xff0c; 按 yyyy-mm-dd的格式将输入中对应的日期打印出来。 …...

OpenHarmonyOS 3.2 编译生成的hap和app文件的名称如何配置追加版本号?

找了一圈发现官方的文档都是最新的&#xff0c;3.2很多API都不支持&#xff0c;比如获取OhosAppContext&#xff0c;通过OhosAppContext来获取应用版本号&#xff0c;最终是通过读取app.json5的文件内容来读取版本号&#xff0c;最终修改entry下的hvigorfile.ts如下&#xff0c…...

【openwrt】openwrt odhcpd配置介绍

odhcpd odhcpd是一个嵌入式DHCP/DHCPv6/RA服务器和NDP中继的进程,odhcpd是一个守护进程,用于服务和中继IP管理协议,以配置客户端和下游路由器。它试图遵循IPv6家用路由器的RFC 6204要求。odhcpd为DHCP、RA、无状态SLAAC和有状态DHCPv6、前缀委派提供服务器服务,并可用于在没…...

基于神经网络的视频编码NNVC(1):帧内预测

在H.266/VVC发布后&#xff0c;基于传统编码框架提升压缩率越来越难&#xff0c;随着深度学习的发展&#xff0c;研究人员开始尝试将神经网络引入编码器。为此&#xff0c;JVET工作组在2020年成立AHG11小组来专门进行基于神经网络的视频编码的研究。 为了方便研究&#xff0c;工…...

Android开发,待办事项提醒App的设计与实现

文章目录 1. 研究目的2. 主要内容3. 运行效果图4. 涉及到的技术点5. 开发环境6. 关于作者其它项目视频教程介绍 1. 研究目的 当今,随着时代的发展和计算机的普及,人们开始利用网络来记录并管理日常的事务,时下这方面的软件数不胜数。各种日程管理软件就是将每天的工作和事务安…...

豆瓣Top250电影的数据采集与可视化分析(scrapy+mysql+matplotlib)

文章目录 豆瓣Top250电影的数据采集与可视化分析(scrapy+mysql+matplotlib)写在前面数据采集(Visual Studio Code+Navicat)1.观察网页信息2.编写Scrapy代码(Visual Studio Code)2.1 创建Scrapy项目`doubanProject`2.2 创建爬虫脚本`douban.py`2.3 修改`douban.py`的代码2…...

MySQL索引——让查询飞起来

文章目录 索引是什么&#xff1f;&#xff1f;硬件理解MySQL与存储 MySQL 与磁盘交互基本单位索引的理解B vs B聚簇索引 VS 非聚簇索引索引操作创建主键索引唯一索引的创建普通索引的创建全文索引的创建查询索引删除索引 在现代数据库应用中&#xff0c;查询性能是决定系统响应…...

Springboot集成Elasticsearch8.0(ES)版本,采用JAVA Client方式进行连接和实现CRUD操作

本文章介绍了 springboot t集成Elasticsearch8.0(ES)版本,如何通过 AVA Client方式进行连接和实现CRUD操作 在ES7.15版本之后,ES官方将高级客户端 RestHighLevelClient标记为弃用状态。同时推出了全新的 Java API客户端 Elasticsearch Java API Client,该客户端也将在 Ela…...

使用VSCode开发Django指南

使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架&#xff0c;专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用&#xff0c;其中包含三个使用通用基本模板的页面。在此…...

springboot 百货中心供应链管理系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;百货中心供应链管理系统被用户普遍使用&#xff0c;为方…...

剑指offer20_链表中环的入口节点

链表中环的入口节点 给定一个链表&#xff0c;若其中包含环&#xff0c;则输出环的入口节点。 若其中不包含环&#xff0c;则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器&#xff0c;其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机&#xff08;Virtual Host&#xff09;。 1. 简介 Nginx 使用 server_name 指令来确定…...

前端开发面试题总结-JavaScript篇(一)

文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包&#xff08;Closure&#xff09;&#xff1f;闭包有什么应用场景和潜在问题&#xff1f;2.解释 JavaScript 的作用域链&#xff08;Scope Chain&#xff09; 二、原型与继承3.原型链是什么&#xff1f;如何实现继承&a…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)

在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马&#xff08;服务器方面的&#xff09;的原理&#xff0c;连接&#xff0c;以及各种木马及连接工具的分享 文件木马&#xff1a;https://w…...

基于IDIG-GAN的小样本电机轴承故障诊断

目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) ​梯度归一化(Gradient Normalization)​​ (2) ​判别器梯度间隙正则化(Discriminator Gradient Gap Regularization)​​ (3) ​自注意力机制(Self-Attention)​​ 3. 完整损失函数 二…...

Golang——7、包与接口详解

包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...

零知开源——STM32F103RBT6驱动 ICM20948 九轴传感器及 vofa + 上位机可视化教程

STM32F1 本教程使用零知标准板&#xff08;STM32F103RBT6&#xff09;通过I2C驱动ICM20948九轴传感器&#xff0c;实现姿态解算&#xff0c;并通过串口将数据实时发送至VOFA上位机进行3D可视化。代码基于开源库修改优化&#xff0c;适合嵌入式及物联网开发者。在基础驱动上新增…...

6️⃣Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙

Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙 一、前言:离区块链还有多远? 区块链听起来可能遥不可及,似乎是只有密码学专家和资深工程师才能涉足的领域。但事实上,构建一个区块链的核心并不复杂,尤其当你已经掌握了一门系统编程语言,比如 Go。 要真正理解区…...