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

CSP信奥赛C++常用系统函数汇总

# CSP信奥赛C++常用系统函数汇总## 一、输入输出函数### 1. cin / cout(`<iostream>`)
```cpp
int x; 
cin >> x;        // 输入
cout << x << endl;// 输出

优化ios::sync_with_stdio(false); 可提升速度

2. scanf() / printf()(<cstdio>

int x;
scanf("%d", &x); 
printf("%d\n", x);

二、数学函数(<cmath>

函数

功能

示例

sqrt(x)

平方根

sqrt(9.0) → 3.0

pow(a, b)

a的b次方

pow(2,3) → 8.0

abs(x)

整型绝对值

abs(-5) → 5

fabs(x)

浮点型绝对值

fabs(-3.14) → 3.14

ceil(x)

向上取整

ceil(2.3) → 3.0

floor(x)

向下取整

floor(2.9) → 2.0

round(x)

四舍五入

round(2.5) → 3.0

__gcd(a, b)

最大公约数

__gcd(12,18) → 6

三、字符串处理

1. C++字符串(<string>

方法/函数

功能

示例

stoi(str)

字符串转整数

stoi("123") → 123

substr(pos, len)

截取子串

"Hello".substr(1,3) → "ell"

find(str)

查找子串位置

"abcde".find("cd") → 2

str.length()

获取字符串长度

"test".length() → 4

2. C风格字符串(<cstring>

函数

功能

示例

strlen(s)

字符串长度

strlen("abc") → 3

strcmp(a, b)

字符串比较

strcmp("a", "b") → 负数

strcpy(dest, src)

复制字符串

strcpy(buf, "hello")

四、STL算法(<algorithm>

函数

功能

示例

sort(begin, end)

快速排序

sort(arr, arr+5);

swap(a, b)

交换变量

swap(x, y);

reverse(begin, end)

反转序列

reverse(s.begin(), s.end());

max(a, b) / min(a, b)

最值

max(3,5) → 5

next_permutation(...)

生成下一个排列

next_permutation(arr, arr+3);

五、容器操作

1. vector(<vector>

vector<int> v;
v.push_back(10);    // 添加元素
v.pop_back();       // 删除末尾元素
v.size();           // 获取元素个数

2. queue(<queue>

queue<int> q;
q.push(10);         // 入队
q.pop();            // 出队
q.front();          // 队首元素

3. stack(<stack>

stack<int> s;
s.push(10);         // 压栈
s.pop();            // 弹栈
s.top();            // 栈顶元素

六、其他实用函数

函数/方法

头文件

功能

示例

memset(arr, val, size)

<cstring>

内存初始化(按字节)

memset(arr, 0, sizeof(arr));

tolower(c) / toupper(c)

<cctype>

字符大小写转换

toupper('a') → 'A'

clock()

<ctime>

获取程序运行时间(ms)

clock() / CLOCKS_PER_SEC

七、完整汇总表格

分类

函数/方法

功能

头文件

示例

输入输出

cin / cout

标准输入输出

<iostream>

cin >> x; cout << x;

scanf() / printf()

格式化输入输出

<cstdio>

scanf("%d", &x);

数学函数

sqrt(x)

平方根

<cmath>

sqrt(9.0) → 3.0

pow(a, b)

幂运算

<cmath>

pow(2,3) → 8.0

__gcd(a, b)

最大公约数

<algorithm>

__gcd(12,18) → 6

字符串处理

stoi(str)

字符串转整数

<string>

stoi("123") → 123

str.substr(pos, len)

截取子串

<string>

"abcde".substr(1,3) → "bcd"

strcmp(a, b)

字符串比较

<cstring>

strcmp("a", "b") → 负数

STL算法

sort(begin, end)

快速排序

<algorithm>

sort(v.begin(), v.end());

reverse(begin, end)

反转序列

<algorithm>

reverse(s.begin(), s.end());

容器操作

vector::push_back()

添加元素

<vector>

v.push_back(10);

queue::front()

获取队首元素

<queue>

q.front();

其他

memset(arr, val, size)

内存初始化

<cstring>

memset(arr, 0, sizeof(arr));

tolower(c)

转小写字符

<cctype>

tolower('A') → 'a'

注意事项

  1. 浮点精度pow(2,3) 返回 double 类型,整数运算建议手动计算
  2. 排序自定义sort() 可通过自定义比较函数实现复杂排序
  3. 内存安全memset 的第二个参数是按字节赋值,仅适合初始化为 0 或 -1
  4. 竞赛优化:关闭流同步 ios::sync_with_stdio(false); 可提升输入输出速度
http://www.xdnf.cn/news/12926.html

相关文章:

  • 异或和之差-字典树
  • 二分查找 -P1102 A-B 数对
  • 风力发电机领域的声纹监测产品
  • 循环神经网络(RNN):从理论到翻译
  • 【Elasticsearch】映射:详解 _source store 字段
  • 基于机器学习的智能故障预测系统:构建与优化
  • 基于算法竞赛的c++编程(22)二进制,十进制,16进制
  • 面向对象之 继承中的成员访问特点
  • split方法
  • mybatis执行insert如何返回id
  • 开疆智能Ethernet/IP转Modbus网关连接斯巴拓压力传感器配置案例
  • LeetCode 高频 SQL 50 题(基础版)之 【高级字符串函数 / 正则表达式 / 子句】· 上
  • MCP(Model Context Protocol)与提示词撰写
  • unipp---HarmonyOS 应用开发实战
  • 并发和并行
  • 相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
  • 例说局部性原理给程序带来的提升
  • 2480: 2020年06月2级T1:计算矩阵边缘元素之和
  • 计数思想-众数
  • vmware 设置 dns
  • 存储的基本原理
  • 哈希map中不能将数组作为键的原因 leetcode49
  • 第二十八章 字符串与数字
  • 5G-A通感融合对监控监督体系的核心作用
  • 下一代设备健康管理解决方案:基于多源异构数据融合的智能运维架构
  • AD规则设置-铜皮规则,阻焊规则,实时DRC
  • 栈和队列的奇妙冒险:用栈实现队列
  • 6个月Python学习计划 Day 17 - 继承、多态与魔术方法
  • 快速上手Linux文本流编辑器sed
  • 智慧城市项目总体建设方案(Word700页+)