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

embedded/2025/2/2 21:12:16/

一、字符处理相关函数

  • 大小写判断函数
    • 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值。

未完待续


http://www.ppmy.cn/embedded/159013.html

相关文章

Redis --- 分布式锁的使用

我们在上篇博客高并发处理 --- 超卖问题一人一单解决方案讲述了两种锁解决业务的使用方法&#xff0c;但是这样不能让锁跨JVM也就是跨进程去使用&#xff0c;只能适用在单体项目中如下图&#xff1a; 为了解决这种场景&#xff0c;我们就需要用一个锁监视器对全部集群进行监视…

傅里叶分析之掐死教程

https://zhuanlan.zhihu.com/p/19763358 要让读者在不看任何数学公式的情况下理解傅里叶分析。 傅里叶分析 不仅仅是一个数学工具&#xff0c;更是一种可以彻底颠覆一个人以前世界观的思维模式。但不幸的是&#xff0c;傅里叶分析的公式看起来太复杂了&#xff0c;所以很多…

React中的JavaScript语法

最近在看《深入浅出react和redux》。其实react-redux采用的单相流flux是对传统mvc的一种改进&#xff0c;而Qt的qml遵循的是传统mvc&#xff0c;已有类似flux的Qt-qml实现&#xff0c;比如&#xff1a;GitHub - benlau/quickflux: A Flux implementation for QML。为了更好理解…

【SRC排名】安全应急响应中心SRC上榜记录

2023年 新氧第三 https://security.soyoung.com/top 合合第四 https://security.intsig.com/index.php?m&chall&aindex 2024年 好未来第一 https://src.100tal.com/index.php?m&chall&aindex&#xff08;官网是总榜&#xff0c;年榜只有海报&#xff09;…

Qt调用ffmpeg库录屏并进行UDP组播推流

基于以下参考链接&#xff0c;采用其界面和程序框架&#xff0c;实现实时推送UDP组播视频流&#xff0c;替换原拉流功能 https://blog.csdn.net/u012532263/article/details/102736700 源码在windows&#xff08;qt-opensource-windows-x86-5.12.9.exe&#xff09;、ubuntu20.…

Python-列表

3.1 列表是什么 在Python中&#xff0c;列表是一种非常重要的数据结构&#xff0c;用于存储一系列有序的元素。列表中的每个元素都有一个索引&#xff0c;索引从0开始。列表可以包含任何类型的元素&#xff0c;包括其他列表。 # 创建一个列表my_list [1, 2, 3, four, 5.0]…

Manticore Search,新一代搜索引擎之王

吊打ES&#xff0c;新一代搜索引擎之王 概述 Manticore Search 是一个开源的分布式搜索引擎&#xff0c;专注于高性能和低延迟的搜索场景。 它基于 Sphinx 搜索引擎开发&#xff0c;继承了 Sphinx 的高效索引和查询能力&#xff0c;并在分布式架构、实时搜索、易用性等方面进…

关于ARM和汇编语言

一图流 ARM 计算机组成 输入设备 输出设备 存储设备 运算器 控制器 处理器读取内存程序执行的过程 取指阶段&#xff1a;控制器器通过地址总线向存储器发送想要获取的指令的地址编号&#xff0c;存储器将指定的指令发送给处理器 译码阶段&#xff1a;控制器对指令进行分…