刷題中常用的方法總結

2021-09-10 17:48:04 字數 2251 閱讀 6081

走路類數字和字串互轉

讀入類判斷資料區間

這裡我要在二維vector中查到符合條件的vector,有兩種方法

1.直接使用find函式,find返回迭代器,我們取得返回結果再與初始迭代器相減然後再判斷下就可以。

vector<

int<

int>> ob;

vector<

int>num;

//要查詢的vector

//找不到if(

(find

(ob.

begin()

,ob.

end(

),num)

-begin()

)== ob.

end())

else

上面方法的效率很慢,是最笨的方法。

pair將兩個型別組合在一起,在一些題目中非常有用,而set能幫助我們存放元素。但是這個方法只能用於查詢長度為2的時候

setint,

int>>set

vector<

int<

int>> ob;

for(

auto obj:ob)

vecotr<

int,

int>num;

//和上面一樣 查詢和判斷

find

(set.

begin()

,set.

end(),

make_pair

(num[0]

,num[1]

);

這些問題一般出現在模擬題,或者dfs中

用下面的技巧來模擬走路

//face是方向, x[face],y[face]則是即將走動的方向

int face=0;

int x=

;int y=

;

這種題目一般是要對多少位數字進行操作,直接對int或者double型別操作會不方便,這時就需要我們借助string的幫助

stringstream很強大很方便,不幸的是它很慢!在資料比較大的情況慎用

直接上**

#include

using namespace std;

intmain()

sprintf()

示例

int

sprintf

(char

*buffer,

const

char

*format,

[ argument] … )

;//引數列表

// buffer:char型指標,指向將要寫入的字串的緩衝區。

// format:格式化字串。

// [argument]...:可選引數,可以是任何型別的資料。

// 返回值:字串長度(strlen)

int aa =30;

char c[8]

;int length =

sprintf

(c,"%d"

, aa)

; cout

string str=c ;

//使用string繼續操作

上述格式化補充

%% 印出百分比符號,不轉換。

%c 整數轉成對應的 ascii 字元。

%d 整數轉成十進位。

%f 倍精確度數字轉成浮點數。

%o 整數轉成八進位。

%s 整數轉成字串。

%x 整數轉成小寫十六進製。

%x 整數轉成大寫十六進製。

sscanf()

這裡提一下sscanf,更多用法請看

有點像python中的槽函式

#include

using namespace std;

intmain()

例如我要讀入

25 6 8 11 9

10 12 9

2為兩行 剩下兩行是資料

int

main()

}

判斷一串數字是否連續

如1 2 3 5 6

如果連續 max-min=區間長度-1

上述例子6 - 1 != 4 不連續

陣列中常用的方法總結

低階 1 array.from,將乙個類似陣列的物件中建立乙個陣列例項 第乙個類陣列,第二個是函式,類陣列的每一項都會執行,第三個引數座位mapfn的this array.from foo f o o var o array.from 1,2,3,4 function item o 2,3,4,5 ...

weiphp中常用方法總結

通用分頁列表資料集獲取方法 調取 引數說明 獲取外掛程式類的類名 function get addon class name addon if class exists class addon return class 3 get model list 獲取模型列表資料 4 getmodel 通過查...

css中常用方法總結

css 提供了 text indent 屬性,該屬性可以方便地實現文字縮排。通過使用 text indent 屬性,所有元素的第一行都可以縮排乙個給定的長度,甚至該長度可以是負值。這個屬性最常見的用途是將段落的首行縮排。在設計乙個網頁的時候,有時候為了讓頁面的可讀性更好,更加美觀 就會使用到lett...