C 的一些奇奇怪怪的小技巧(有用到過持續更)

2022-07-16 23:39:20 字數 610 閱讀 3728

用於乙個陣列的全排列(從當前陣列狀況開始,所以要真正生成全排列之前先排序)。用法如下。

1 #include 2

using

namespace

std;34

intmain()while (next_permutation(a,a+3

));

10 }

用於計算i的二進位制位數中共有幾個1.

相當於乙個陣列,但每位只能為0或1.暴力時用到可以增加效率。

生成隨機數(範圍比rand()更大,可以不指定也可以指定)。使用方法如下:

1 #include 2

using

namespace

std;

3mt19937 mt(chrono::steady_clock::now().time_since_epoch().count());

4int

main()

用於隨機排列陣列。用法: shuffle(a,a+maxn,mt);

講第二個引數到第三個引數區間內(左閉右開)的元素移到第乙個引數之前。用法: rotate(b,b+n-1,b+n);

計算i的二進位制有多少個前導零。

記憶體設定的一些有用技巧

向baoyg師兄學習,由衷敬佩。1 核心中獲取模組變數的實體地址 x86 64平台 中,核心變數可以通過直接減乙個固定偏移 start kernel map 0xffffffff80000000 來獲得實體地址 但是module中 的變數還是需要查詢頁表才能獲得實體地址,可以通過呼叫lookup a...

記一些c 的小技巧

判斷物件之間的繼承關係 type類的函式 class type bool isinstanceoftype object 判斷物件是否是指定型別 型別可以是父類,介面 用法 父類.isinstanceoftype 子類物件 bool isassignablefrom type 判斷兩個型別的關係 型...

VI的使用 一些有用的技巧

vi是linux中最常見的edit工具,對它的熟練點對你使用linux很有幫助 1 vi的簡單操作 移動 行首 0,移至行尾 向上 k,向下 j,向前 b,向後 w 刪除 x或nx 從游標所在的位置刪除乙個或n個字元 x或nx 刪除游標前的乙個或n個字元 dd 刪除游標所在的行 d 刪除從游標位置開...