C 常用小Tips總結 不定期更新

2021-10-07 07:18:56 字數 2553 閱讀 1856

3. 輸出兩位數字,不夠則前面補零(setw與setfill的使用)

4. string字串遇到的坑

字串轉數字

這學期在c++的上機做題過程中遇到過很多小坑,都是一些細節上的東西。所以打算專門把它們總結起來,防止以後遇到類似的問題一下子懵了,也當作是期末複習。

1.常見型別的陣列,如int,double,float,string型別,如果要進行sort排序,直接呼叫sort函式即可(需要包含algorithm標頭檔案),第乙個引數為陣列名,第二個引數為陣列名+陣列長度,需要注意的是,sort函式預設是公升序排序,如果是降序排序,需要另外加上第三個引數 greater《陣列型別》()。下面拿int型別的陣列舉個例子:

#include

#include

using

namespace std;

intmain()

2.對於自定義類或結構體的排序,如果要使用sort函式,要自定義元素的排序規則。下面拿日子排序的例子進行說明。

首先我們有乙個日子的結構體,裡面有三個引數,年,日。現在我們希望輸入t個日期(t>=2),然後進行排序,並且輸出第二大的出生日期。

#include

#include

using

namespace std;

struct date

;bool

cmp(date x, date y)

intmain()

sort

(a,a+t,cmp)

;//對t個日期進行排序

//輸出第二大的日期

cout << a[1]

.year <<

"-"<< a[1]

.month <<

"-"<< a[1]

.day << endl;

return0;

}/*//輸入比較個數,以及每個出生日期,下面為輸入案例

6 1980 5 6

1981 8 3

1980 3 19

1980 5 3

1983 9 12

1981 11 23

//輸出第二老的日期: 1980-5-3

*/

3.對於自定義類,如果要通過過載運算子"

比如我們需要對乙個浮點數進行小數點後四位的輸出,則需要在輸出該元素前加上下面的規則:

fixed <<

setprecision(4

)

下面舉個例子進行說明:

#include

#include

//必須包含該標頭檔案,否則出錯

對於一些時間的輸出題目,有時候規定輸出格式如下:「19:05:08」,像這裡原本的時分秒分別為19,5,8,但是對於分跟秒這種單位數的,我們需要在前面補0,這時候就需要用到下面的規則

setw(2

)<<

setfill

('0'

)

拿19:05:08舉例子:

用dev環境執行出來是空的

執行出來可看到數字2轉換為字元2

非常感謝看到這裡,如果有幫助到你的話可以點個?支援一下噢!

模板總結 不定期更新

這裡會掛一些自己認為很重要的模板,沒理解的就沒有注釋了,等理解了就更快速排序 簡單分治思想,時間複雜度從 o n log o n 2 不等,及其不穩定 code includeusing namespace std long long a 100001 n void qs int l,int r i...

不定期更新部落格

也算是乙個真正程式設計生涯的起點,聽說大神都有自己的部落格。csdn部落格主要是作為乙個詳細的記錄場所,類似log的verbose檔,細緻入微,無孔不入,因此可能更新頻率較高,質量也相對較低。我的意思是將csdn這裡的部落格作為日後更加精煉的部落格 比如個人blog站或者github pages 的...

C STL 不定期更新

一 set set的特性是,所有元素都會根據元素的鍵值自動排序,set的元素不像map那樣可以同時擁有實值 value 和鍵值 key set元素的鍵值就是實值,實值就是鍵值。set不允許兩個元素有相同的鍵值。include初始化 int arr 5 set iset arr,arr 5 或者只定義...