C++信息学竞赛中常用函数的一般用法

在C++ 信息学竞赛中,有许多常用函数能大幅提升编程效率。下面为你介绍一些常见函数及其一般用法:

一、比较函数

1、max()
//求出a,b的较大值
    int a=10,b=5,c;c=max(a,b);//得出的结果就是c等于10.
    2、min()
    
    //求出a,b的较小值
    int a=10,b=5,c;c=min(a,b);//得出的结果就是c等于5.
    3、swap()
    
    //交换a,b变量的值
      int a=10,b=5;swap(a,b);//得出的结果就是a等于5;b等于10.

      二、数学函数

      1、abs()

      //用于计算整数的绝对值

      int a = -5;int b = abs(a); // b 的值为 5
      2、fabs()

      //用于计算浮点数的绝对值:

      ​​​​​​​

      double x = -3.14;double y = fabs(x); // y 的值为 3.14
      3、pow()

      //用于计算幂次方,不过返回值为 double 类型,使用时要留意精度问题。

      double result = pow(2, 3); // 计算 2 的 3 次方,result 的值为 8.0
      4、sqrt()

      //用于计算平方根:

      ​​​​​​​

      double root = sqrt(16); // root 的值为 4.0
      5、round()
      
      //四舍五入到整数
      double a = 3.5;double r = round(a);  // 返回 4.0(向最近的整数舍入)

      “四舍六入五成双”(银行家舍入法):

      若小数部分 恰好为 0.5,则舍入到 最近的偶数

      ​​​​​​​

      round(2.5);  // 返回 2.0(偶数)
      round(3.5);  // 返回 4.0(偶数)

      其他情况正常四舍五入:

      ​​​​​​​

      round(2.4);  // 返回 2.0
      round(2.6);  // 返回 3.0
      round(-2.5); // 返回 -2.0(偶数)
      6、floor()
      
      //向下取整 floor(1.0/2) = 0等同于 1/2
      floor(3.5);  // 返回 3.0
      floor(-3.5); // 返回 -4.0
      7、ceil()
      
      //向上取整 ceil(1.0/2) = 1
      std::ceil(3.5);   // 返回 4.0
      std::ceil(-3.5); // 返回 -3.0

      三、字符串处理函数

      1、substr()

      //用于截取子字符串:

      string s = "abcdef";string sub1 = s.substr(1, 3); // 从索引 1 开始,截取长度为 3 的子字符串,sub1 的值为 "bcd"
      string sub2 = s.substr(2); // 从索引 2 开始截取到字符串末尾,sub2 的值为 "cdef"
      2、stoi()stod()

      //用于将字符串转换为整数或双精度浮点数:

      ​​​​​​​

      string numStr = "123";int num = stoi(numStr); // num 的值为 123
      string doubleStr = "3.14";double d = stod(doubleStr); // d 的值为 3.14

      四、算法库函数

      1、sort()

      //用于对数组或容器进行排序:

      ​​​​​​​

      int arr[] = {5, 3, 1, 4, 2};int n = sizeof(arr) // sizeof(arr[0]);sort(arr, arr + n); // 对数组进行升序排序
      vector<int> v = {5, 3, 1, 4, 2};sort(v.begin(), v.end()); // 对向量进行升序排序

      五、内存操作函数

      1、memset()

      //用于初始化数组:

      ​​​​​​​

      int arr[10];memset(arr, 0, sizeof(arr)); // 将数组所有元素初始化为 0
      // 注意:如果要初始化为其他值(如 -1),可以使用以下方式memset(arr, -1, sizeof(arr)); // 将数组所有元素初始化为 -1

      本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/news/908747.shtml

      如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

      相关文章

      Linux【3】-----系统框架概述

      系统架构 文件系统 linux一定需要挂载操作系统 一切皆文件 三个文件 引导文件 uboot.bin内核镜像 zImage文件系统镜像 system.img 设备树文件&#xff08;属于内核&#xff09; 应用程序编程 arm中通过软中断实现 各程序的构成 文件I/O 5种I/O模型 阻塞非阻塞信号多…

      Tensorrt python api 10.11.0笔记

      关于Tensorrt的python api文档阅读翻译加总结 文档源地址 Overview Getting started with TensorRT Installation(安装) 安装可参考:官方地址 Samples 关于样例的内容可参考:样例地址 Operator Documentation 有关更多信息&#xff08;包括示例&#xff09;&#xff0…

      电镀机的阳极是什么材质?

      知识星球&#xff08;星球名&#xff1a;芯片制造与封测技术社区&#xff0c;点击加入&#xff09;里的学员问&#xff1a;电镀的阳极有什么讲究&#xff1f;什么是可溶性阳极和非可溶性阳极&#xff1f; 什么是可溶性阳极与非可溶性阳极&#xff1f; 可溶性阳极 阳极本身就是…

      前段三剑客之JavaScript-02

      目录 简介 核心 函数 字符串对象 事件 运算符和控制语句 DOM 正则表达式 BOM JSON 简介 JavaScript由JavaScript语法&#xff0c;DOM和BOM组成 JS中提供了一些输入输出语句&#xff1a; alert(); //浏览器弹出警示框 console.log(); //控制台打印 prompt(); //浏览器…

      Qiskit:量子计算模拟器

      参考文献&#xff1a; IBM Qiskit 官网Qiskit DocumentationQiskit Benchpress packageQiskit Algorithms package量子计算&#xff1a;基本概念常见的几类矩阵&#xff08;正交矩阵、酉矩阵、正规矩阵等&#xff09;Qiskit 安装指南-博客园使用Python实现量子电路模拟&#x…

      【Elasticsearch】Elasticsearch 核心技术(二):映射

      Elasticsearch 核心技术&#xff08;二&#xff09;&#xff1a;映射 1.什么是映射&#xff08;Mapping&#xff09;1.1 元字段&#xff08;Meta-Fields&#xff09;1.2 数据类型 vs 映射类型1.2.1 数据类型1.2.2 映射类型 2.实际运用案例案例 1&#xff1a;电商产品索引映射案…

      serv00 ssh登录保活脚本-邮件通知版

      适用于自己有服务器情况&#xff0c;ssh定时登录到serv00&#xff0c;并在登录成功后发送邮件通知 msmtp 和 mutt安装 需要安装msmtp 和 mutt这两个邮件客户端并配置&#xff0c;参考如下文章前几步是讲配置这俩客户端的&#xff0c;很简单&#xff0c;不再赘述 用Shell脚本实…

      前端 Electron 桌面应用学习笔记

      前端 Electron 桌面应用学习笔记 介绍Electron是什么?为什么选择Electron?创建你的第一个桌面应用程序启动项目运行结果截图打开调试面板方法生命周期函数常用配置配置窗口标题配置小图标隐藏菜单栏关闭调试面板是否可以使用Node.js隐藏 Electron 标题、小图标和菜单栏获取窗…

      LeetCode - 94. 二叉树的中序遍历

      题目 94. 二叉树的中序遍历 - 力扣&#xff08;LeetCode&#xff09; 什么是中序遍历 二叉树的中序遍历是按照"左-根-右"的顺序访问二叉树中的所有节点。 具体过程&#xff1a; 先遍历左子树&#xff08;递归&#xff09;然后访问根节点最后遍历右子树&#xff…

      PyTorch——搭建小实战和Sequential的使用(7)

      import torch from torch import nn from torch.nn import Conv2d, MaxPool2d, Flatten, Linearclass TY(nn.Module):def __init__(self):"""初始化TY卷积神经网络模型模型结构&#xff1a;3层卷积池化&#xff0c;2层全连接设计目标&#xff1a;处理32x32像素的…

      C#、VB.net——如何设置窗体应用程序的外边框不可拉伸

      以Visual studio 2015为例&#xff0c;具体操作如下&#xff1a; 1、将窗体的“FormBorderStyle”属性值修改为“FixedSingle”&#xff1a; 2、点击“格式”——“锁定控件”&#xff1a; 这样生成的程序边框即可固定住&#xff0c;无法拉伸。

      深入了解NIO的优化实现原理

      网络 I/O 模型优化 网络通信中&#xff0c;最底层的就是内核中的网络 I/O 模型了。随着技术的发展&#xff0c;操作系统内核的网络模型衍生出了五种 I/O 模型&#xff0c;《UNIX 网络编程》一书将这五种 I/O 模型分为阻塞式 I/O、非阻塞式 I/O、I/O 复用、信号驱动式 I/O 和异步…

      【前端】vue3性能优化方案

      以下是Vue 3性能优化的系统性方案&#xff0c;结合核心优化策略与实用技巧&#xff0c;覆盖渲染、响应式、加载、代码等多个维度&#xff1a; ⚙️ 一、渲染优化 精准控制渲染范围 v-if vs v-show&#xff1a; v-if&#xff1a;条件为假时销毁DOM&#xff0c;适合低频切换场景&…

      在MATLAB中使用自定义的ROS2消息

      简明结论&#xff1a; 无论ROS2节点和MATLAB运行在哪&#xff0c;MATLAB本机都必须拥有自定义消息源码并本地用ros2genmsg生成&#xff0c;才能在Simulink里订阅这些消息。只要你想让MATLAB或Simulink能识别自定义消息&#xff0c;必须把消息包源码(.msg等)拷到本机指定目录&a…

      spring重试机制

      数据库死锁处理与重试机制实现指南 1. 业务场景 1.1 问题现象 高并发批量数据处理时频繁出现数据库死锁主要发生在"先删除历史数据&#xff0c;再重新计算"的业务流程中原有逐条处理方式&#xff1a;list.forEach(item -> { delete(); calculate(); }) 1.2 死…

      QEMU源码全解析 —— 块设备虚拟化(24)

      接前一篇文章:QEMU源码全解析 —— 块设备虚拟化(23) 本文内容参考: 《趣谈Linux操作系统》 —— 刘超,极客时间 《QEMU/KVM源码解析与应用》 —— 李强,机械工业出版社 特此致谢! QEMU写入一个文件的完整过程 前边用了十来篇文章的篇幅,解析了QEMU启动过程中的存储…

      java中static学习笔记

      较重要知识点 static修饰的变量是共享的在类加载时创建可以不通过实例来访问静态方法只能访问静态的成员和方法&#xff1b;而非静态的可以访问静态的和非静态的。静态方法一般用在通用的方法&#xff0c;这样方便调用&#xff0c;不然一个通用的方法每一次调用都要创建实例&a…

      快刀集(1): 一刀斩断视频片头广告

      一刀流&#xff1a;用一个简单脚本&#xff0c;秒杀视频片头广告&#xff0c;还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农&#xff0c;平时写代码之余看看电影、补补片&#xff0c;是再正常不过的事。 电影嘛&#xff0c;要沉浸&#xff0c;…

      spring中的@KafkaListener 注解详解

      KafkaListener 是 Spring Kafka 提供的一个核心注解&#xff0c;用于标记一个方法作为 Kafka 消息的消费者。下面是对该注解的详细解析&#xff1a; 基本用法 KafkaListener(topics "myTopic", groupId "myGroup") public void listen(String message)…

      多区域协同的异地多活AI推理服务架构

      &#x1f310;多区域协同的异地多活AI推理服务架构 #mermaid-svg-TTnpRKKC7k3twxhE {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-TTnpRKKC7k3twxhE .error-icon{fill:#552222;}#mermaid-svg-TTnpRKKC7k3twxhE .er…