藍橋杯備戰(1)STL專題

2021-09-29 02:20:56 字數 1839 閱讀 5720

sort函式

標頭檔案

#include
使用方法 :

sort(first,last,cmp);
first是元素的起始位置,last是元素的結束位址,cmp是排序方式。

如果寫cmp,那麼預設為從小到大排序

bool cmp(int a, int b)

{return b這時系統預設a>b,輸出true,式子是從大到小排序的

(2)衝在比較運算子 **如下:

bool operator< (const student & s1,const student &s2)

{ if(s1.age == s2.age)

return s1.name>s2.name;

else

return s1.age(3)宣告比較類 :

struct cmp

{ bool operator() (const student & s1,const student &s2)

{ if(s1.age == s2.age)

return s1.name>s2.name;

else

return s1.agevectorvector ::iterator iter;

這表示宣告了乙個int型別的變數,資料型別是由vector< int >定義的iterator型別。

vector::iterator iter = iverc.begin();//iter->ivec[0]
在關係容器中(如map),初始化iter為m.begin(),這個時候輸出*iter會報錯。(*it).first會得到key(模擬於python中的pair)等同於it->first

std::reverse(pos1,pos2);//使用方法
vec.clear();

對映:map

map的基本操作

mapmap_student;//map::value_type(1,"student"));//第一種

insert(make_pair(1,"student"));//第二種

`方法二不能夠覆蓋以前的值,更能體現對映的特性

map的實際操作

什麼樣的題目適合map

reference to ·map ·is ambuguous --所起名字與關鍵字相重

map名稱[key]是可以直接表示value的

set容器

#include //標頭檔案

常用函式

set容器基本操作

seta1;

seta2(a1);

新增元素

直接呼叫insert函式,不可以插入重複值

刪除元素

直接呼叫erase函式可刪除鍵值,迭代器所指向的值,或是區間中的值。

因為erase的操作是不會有錯誤檢查的,比如定位器是否合法,所以使用之前一定要注意查詢元素

find(key_value);//找得到便返回鍵值的迭代器的位置,否則便返回最後乙個元素的的迭代器的位置,即end();

stack和queue

stack簡介

stack 的拷貝與構造

stackstk2(stk1);//拷貝構造

stk2 = stk1;//賦值操作

queue簡介

C 之STL(簡述)(藍橋杯備戰)

2019年是我第一次參加藍橋杯比賽。在2019年的藍橋杯中,我選擇了c c b組的比賽。在c 組的比賽中,stl是被允許使用的。而且在一些時候可以簡化 長度,提高 效率。但在之前的學習中,我們並沒有對stl有什麼接觸,因此專門抽出一段時間對stl進行學習。由於本次是專門針對藍橋杯對stl進行學習,因...

藍橋杯備戰(2)列舉專題

字串處理 字串的實用函式 二分法對列舉的優化 查詢 核心 int left 0,right x,mid x表示二分物件的長度 mid left right 2 while left right else if mid標記對列舉的優化 flag n.標記 標識 作為乙個指示針對陣列中所需要的元素進行標...

藍橋杯 Python組 備戰演算法專題 例題

poj 1543 完美立方 時限 1000ms 記憶體限制 10000k 提交總數 17965 接受的 8944 描述 數百年來,費馬最後定理簡單地證明了 對於n 2,不存在整數a,b,c 1,因此a n b n c n仍然難以捉摸。儘管仍在進行審查,但最新的證明被認為是正確的。但是,可以找到大於1...