1. 程式人生 > >C++程式設計題最常用函式彙總

C++程式設計題最常用函式彙總

內容會持續更新,有錯誤的地方歡迎指正,謝謝!

1.型別轉化

string轉int的方式

採用標準庫cstdlib中atoi函式,<cstdlib>是C++裡面的一個常用函式庫, 等價於C中的<stdlib.h>,但不需引入,已預設引入。

string str = "55";
int temp = std::atoi(str.c_str()); 

string轉double的方式

採用標準庫cstdlib中atof函式

string str = "55.5"; 
double temp = atof(char * str);

補充:標準庫cstdlib裡還有取絕對值函式abs

內建型別轉string的方式

採用std::to_string函式,不需引入標頭檔案,直接用就好。to_string函式還定義了任何其他內建型別轉為string的過載函式,很實用。

int轉string舉例:

int temp = 55; 
cout << std::to_string(temp) << endl; 

2.偽隨機數函式

採用標準庫cstdlib中srand和rand函式

//由於是計時器原理實現的種子,所以應該在main()裡設定種子,這樣每次外部呼叫結果才隨機。
//若在外部每次呼叫時都重新設定種子了,那麼多次呼叫的結果都是相同的!
srand((unsigned)time(NULL)); //產生[a,b]上的隨機數 ((double)rand()/RAND_MAX)*(b-a) + a ,其中 //(double)rand()/RAND_MAX可以得到一個0~1的隨機數 double temp= (double(rand()) / RAND_MAX) * sum;//產生0到sum之間的浮點數 //產生[0,n-1]的整數 int temp = rand()%n;

3.STL通用演算法函式

#include <algorithm>裡的常用函式

1.交換兩個元素 swap()

int x = 10, y = 20;
swap(x, y);

2.反轉元素的次序 reverse()

reverse()會將區間[beg,end)內的元素全部逆序

string str("hello");
//如何才能只反轉ello,即變成holle?如下
reverse(str.begin()+1,str.end());

3.以很好的平均效率排序 sort()

是一種根據實際資料智慧選擇排序演算法的函式,sort()會將區間[beg,end)內的元素排序,預設升序

bool cmp(int a,int b)
{
    return a>b;//降序排列
}
int array[5]={1,2,3,4,5};
sort(array,array+4,cmp);//通過自定義cmp函式將其改為降序排序

輸出為:4 3 2 1 5

4.兩個值中較小的 min(),較大的 max()

5.按字典序的上/下一個排列

按字典序的下一個排列next_permutation(),按字典序的前一個排列 prev_permutation()

do//do-while迴圈和next_permutation、prev_permutation更配喔~
{
    res.push_back(str);
}while(next_permutation(str.begin(),str.end()));
//next_permutation()執行一次 當前的str序列abc 就變成了 升序中的下一個str序列acb
//當 當前的str序列 是 最後一種str序列cba ,那麼它就會變成最初的str序列abc

4.其他

x為2的冪時,n%x==0等於(n&(x-1))==0,==優先順序比&高,所以一定要加( )

#include<cmath>裡的sqrt()開方函式

#include<map>裡的map的初始化、插入、遍歷:

map<int, string> myMap={{ 5, "張大" },{ 6, "李五" }};//初始化
myMap.insert(pair<int,string>(2,"陳三"));//插入

auto iter=myMap.begin();//利用迭代器iter遍歷
while(iter!=myMap.end())
{
    cout<<myMap->first<<","<<(*myMap).second<<endl;
    ++iter;
}

auto it=myMap.find(2);//find()返回一個指向2的迭代器,輸出關鍵值為2的資訊。
if(it!=myMap.end())
    cout<<myMap->first<<","<<(*myMap).second<<endl;

相關推薦

C++程式設計常用函式彙總

內容會持續更新,有錯誤的地方歡迎指正,謝謝! 1.型別轉化 string轉int的方式 採用標準庫cstdlib中atoi函式,<cstdlib>是C++裡面的一個常用函式庫, 等價於C中的<stdlib.h>,但不需引入,

C++標準庫常用函式彙總

<algorithm> 指令 排序 sort(vec.begin(),vec.end()) 反轉 reverse(str.begin(),s

C/C++程式設計之求兩個數的大公約數和小公倍數

求兩個數的最大公約數和最小公倍數 方法:最大公約數使用輾轉相除法求,最小公倍數等於兩個數的乘積/最大公約數 輾轉相除法的原理:用輾轉相除法求幾個數的最大公約數,先求出其中任意兩個數的最大公約數,再

完美世界2016實習生筆試 [程式設計] 長遞增子序列A(C++)

來源:https://www.nowcoder.com/test/1669710/summary 題目: 給定一個長度為N的陣列,找出一個最長的單調自增子序列(不一定連續,但是順序不能亂)例如:給定一個長度為8的陣列A{1,3,5,2,4,6,7,8},則其最長的單調遞增子

c++程式設計 保留大的數

終於到家了!開始好好學習演算法及資料結構〜 這是一道兩天前就在寫的題,演算法是想出來了,但是讀入的時候總是出現問題! 分享下我的解題歷程吧〜 題目如下: 題目描述 給定一個十進位制的正整數數目,選擇從裡面去掉一部分數字,希望保留下來的數字組成的正整數最大。 輸入描

C++程式設計練習程式碼筆記

從文字檔案old.txt讀取字元,將其中的數字字元‘0’、‘1’、‘2’、‘3’、‘4’、‘5’、‘6’、‘7’、‘8’、‘9’ 分別用英文字母字元‘Z’、‘Y’、‘X’、‘W’、‘V’、‘U’、‘T’、‘S’、‘R’、‘Q’替換,其餘字元不變,結果寫入文字檔案new.txt,並分別將兩個

愛奇藝2018秋季校招C++ [程式設計]奇異數

連結:https://www.nowcoder.com/questionTerminal/7442938f5012486499ddd61ce16f9086 來源:牛客網 如果一個數字滿足以下條件,我們就稱它為奇異數: 1、這個數字至少有兩位 2、這個數的最低兩位是相同的 比如: 1488是

愛奇藝2018秋招C++ [程式設計]奶牛編號

連結:https://www.nowcoder.com/questionTerminal/b96da2bd7a574699b4ceaaa7819cf65b 來源:牛客網 牛牛養了n只奶牛, 牛牛想給每隻奶牛編號, 這樣就可以輕而易舉地分辨它們了。 每個奶牛對於數字都有自己的喜好, 第i只奶牛想要

愛奇藝2018秋招C++ [程式設計]紅和綠

連結:https://www.nowcoder.com/questionTerminal/4ea618c551404efc8299c2eaac733329 來源:牛客網 牛牛有一些排成一行的正方形。每個正方形已經被染成紅色或者綠色。牛牛現在可以選擇任意一個正方形然後用這兩種顏色的任意一種進

C程式設計--指標(用“ 函式 ”對“ 陣列 ” 進行操作)

函式運算元組 說明:如果有一個實引數組,想要在函式中改變此陣列中的元素的值,實參與形參的對應關係有以下4種情況: 1、實參:陣列名 ;; 形參:陣列名 2、實參:陣列名 ;; 形參:指標變數 3、實參:指標變數;; 形參:指標變數 4、實參:指標變

C程式設計--指標(swap函式

swap()函式 方法一:指標法 實參:&a 形參:*x #include<stdio.h> void MySwap(int *x,int *y); int main(){ int a=5,b=9; printf("交換前:a=%d,b=

ORACLE常用函式彙總【轉】

前一段時間學習Oracle 時做的學習筆記,整理了一下,下面是分享的Oracle常用函式的部分筆記,以後還會分享其他部分的筆記,請大家批評指正。 1.Oracle 資料庫中的to_date()函式的使用:   往emp表中插入一條記錄: SQL> insert into emp

一道考驗你設計能力的C++程式設計

看到這道題,我們就開始設計這個影象類了,按照面向物件“依賴倒置”的設計原則,我們站在客戶的立場,來考慮我們這個類該提供哪些介面,很快我們設計瞭如下一個類:  class CSimplePicture { public: CSimplePicture(char* init[], i

C程式設計--指標(用 “ 函式 ” 對 “ 多維陣列 ” 進行操作)

用指向陣列的指標做函式的引數 問題描述 有一個班,3個學生,各4門課,計算總平均分以及第n個學生的成績。 程式碼實現 #include<stdio.h> void average(float *p,int n);//

(PTA程式設計解答)使用函式輸出一個整數的逆序數

原題如下: 6-1 使用函式輸出一個整數的逆序數 (20 分) 本題要求實現一個求整數的逆序數的簡單函式。 函式介面定義: int reverse( int number ); 其中函式reverse須返回使用者傳入的整型number的逆序數。 裁判測試程式樣例

Mysql必練50常用方法彙總:從入門到精通

參考原文https://blog.csdn.net/fashion2014/article/details/78826299 答案全部改進並親測有效 –建表 –學生表 create table if not exists student( s_id varc

js常用函式彙總

1. JS自定義加密解密函式,及用法 function compile(code) { var c=String.fromCharCode(code.charCodeAt(0)+code.length); for(var i=1;i<code.length;i++){

2017校招線上程式設計——快到達陣列末端

文章目錄問題描述問題分析程式碼實現 問題描述 \qquad給定一個數組,裡面全是正整數。數字大小表示這一步最多可以向後移動幾個節點。總是從陣列第一個元素開始移動。問如何移動,可以以最少步數移動到最後一

My_sqlite3 重點常用函式彙總

SHELL 命令 下面 class 代表資料庫名稱 建立新表 Create table class(name char[32],sex char[2],score int); 刪除表 Drop table class; 查詢表所有記錄 Select * from

C++中的string常用函式集錦

我們直入主題,下面是我今天要講解的函式列表。 /* 1.查詢find系列 2.插入insert系列 3.提取substr 4.刪除erase 5.替換replace */ 現在來看第一個:查詢函式。 /* 函式名