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
      繁體地址,請注明出處:http://hk.pswp.cn/news/908747.shtml
      英文地址,請注明出處:http://en.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…