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 或者只定義...