暗黑計畫2 陣列,位運算,pair

2021-07-22 04:52:14 字數 2311 閱讀 1718

1 陣列

1.1定義某種陣列

int pad[10][10]=,,,

,,,,

,,

};

1.2 同樣是定義某個float二維陣列

float **p;

p=new float *[n];

for(int i=0;i>p[i][j];

}

1.3 重新將陣列全部初始化為0

memset(vis,0,sizeof vis);

1.4 

子函式(int a,int result[ ])

result[0]=1;

result[1]=2;

主函式int main()

int fier[3]=;

2.位運算

2.1 交換兩個數字

high = low ^ high;

low = low ^ high;

high = low ^ high;

2.2.dif中有多少個1

int cnt=0;

while(dif!=0)

3.pair的vector對

3.1 pair對,比如記錄的是檔案和行數string的錯誤次數int。

vector> errors;\\定義
errors.push_back(make_pair(file, 1));\\加入,乙個是string還有乙個就是int數字
for (int i = 0; i<(errors.size() - 1); i++)

}

如果下面要對這個進行從大到小的排序呢 

bool compare(paira, pairb)

stable_sort(errors.begin(), errors.end(), compare);
對這樣乙個東西進行輸出,要求如果條數大於8條,就輸出前8條而且檔名如果超過16,那就輸出後16.

int idx = 0;

while (idx<8 && idx16)

errors[idx].first.erase(0, t - 16);\\刪除從0開始的,t-16長度的字元

cout << errors[idx].first << ' ' << errors[idx].second << endl;

idx++;

}

3.2 pair也可以進行比大小排序

bool cmp(const pair& a,const pair& b)

vector> array;\\定義這個pairvector

stable_sort(array.begin(),array.end(),cmp);\\輸出

vectorans;

for(int i=0;i3.3  //map內部本身就是按照key的大小順序進行儲存的,以map的順序進行輸出

for(map::iterator it=m.begin();it!=m.end();++it)

4. cmp.可以達到**根據後乙個排序。小技巧。

struct score_hour;

bool cmp(score_hour a, score_hour b)

while(n--)
sort(v.begin(),v.end(),cmp);

5.輸出,保留小數點數2位

printf("%.2f\n",dif/2.0);

6.棧stacks;

s.push();

s.top();

s.pop();

位運算和位元陣列

列舉查詢的劣勢簡直無需多言,有n個元素,那複雜度就是o n 查詢乙個元素是如此地費勁!倘若我需要你做m次查詢,複雜度就是o n m 當然,我們可以用對分查詢來優化,但是對分查詢需要乙個有序的陣列,通過每次對折一半的方法,最終的複雜度是o logn 小於線性。但是這還是不能讓我們滿意。在解決圖論問題時...

C語言 2 位運算

位運算是指以二進位制位為物件的運算,指標運算和位運算往往是編寫系統軟體所需要的。在計算機用於檢測和控制領域也要用到位運算的知識。位運算子當中除了 以外都是雙目運算子 參加位運算的只能是整型或者字元型資料。按位與運算 運算子為 參與運算的兩個資料,按二進位制位進行 與 運算。如果相應的兩個二進位制位都...

2 變數 運算子 位運算

數值計算 資料儲存 定義變數 申請儲存空間 資料輸入 數值計算 資料輸出 一 變數 定義變數 訪問變數 變數 記憶體單元 定義變數 資料型別 預定義資料型別 寫入輸入 cin ctemp 賦值 ctemp 36 初始化 int x 10,y 讀出自動讀取 ftemp ctemp 1.8 32 輸出 ...