秋招C 開發學習之路day4

2021-09-27 04:11:58 字數 2094 閱讀 7954

day4(map、迭代器、set、tcp、tcp頭部)

map,其內部的資料都是有序的,預設排序是按照key的大小進行的排序。使用例子:mapmapstudent; 一一對應的key-value。key可以任意型別,但是必須支援《操作符。根據key可以快速查詢,複雜度為logn。

map的標頭檔案, #include

map: : iterator iter ;//宣告迭代器

for(iter = mapstudent.begin() ; iter ! = mapstudent.end () ; iter++)

{cout<< iter->first<< 」」<< iter->secondmap插入的資料有三種型別:pair、value_type、陣列型。插入時需要保持格式一致,如果裡面的資料時pair型,插入value_type型時要轉化:

mapstudent.insert(map: : value_type (1 ,」 student_one 」 )) ;

map的insert插入都是在後面插入。

陣列形式的插入:mapstudent[l] = 」 student_ one 」;就像陣列一樣操作。且從 1 開始

用insert時 已有的關鍵字 不能再次插入,但是陣列形式可以直接覆蓋的。

迭代器,vector::iterator it;//it就是迭代器,能都讀寫裡面的元素。

::const_iterator it; 這個it只能讀元素,不能寫元素。

新標準提供兩個:容器 v, v.cbegin() v.cend() 都是返回const_iterator型別。也是返回第乙個元素和最後元素下乙個位置的迭代器。

vector改變容量時 會使迭代器失效。

反向迭代器 使用 rbegin rend, 過程還是 ++ 但是是從後往前的效果。

.size確定大小,陣列遍歷 從下表1開始。

map的查詢,find查詢,map: :iterator iter=mapstudent.find(l);

輸出形式: iter->second<< endl; 如果是->first 則輸出他的key;

map的刪除,也是erase(),可以直接刪除元素、對應key的元素、迭代器所指向的元素、迭代器一段區間的元素。

函式物件,呼叫操作符的類,其物件常稱作函式物件,他們是行為類似函式的物件。

map裡的預設排序,mapmapstudent; greater表示從大到小排序,換成less則是從小到大,預設是less 。

​​這是 greater的原型,要是想按自己的想法排序,則改寫結構體。對應map裡的第三個引數也要改變。

map是集合容器,不是線性的。所以不能直接用sort排序。

map不允許有重複元素,而multimap可以有重複元素。

map,內部自建乙個紅黑樹。二叉查詢樹就是中序遍歷且從小到大。

multimap 允許有重複的key值

插入元素 .insert(pair(key,value));

.insert(make_pair(key,value));

multimap沒有下標操作。

set 也是一種關聯式容器,set中數元素不能被直接改變。set的內部結構也是紅黑樹。

插入和刪除都是指標的變換,所以效率非常高。

set每個元素的值都是唯一的,也會自動排序。

set查詢,是二分查詢。主要是log2()的關係。例如10000個資料,213<10000<214,所以最多搜尋14次。

set,插入也是insert,刪除erase,查詢find,iterator find(value )返回value 所在位置, 找不到value 將返回end()

count(value )返回set 物件內元素值為value 的元素個數。

所有層的資料首先會打包到tcp的segment(資料段),然後打包到ip的packet(資料報),再打包到以太etherent的frame(幀)種,傳到端以後,各層解析自己的協議,然後把資料交給更高層額協議來處理。

15. tcp頭部,

16位埠號,告知主機該報文來自**(源埠),要傳給那個上層協議或應用程式(目的埠)。進行tcp通訊時,客戶端一般使用系統自動選擇的臨時埠。伺服器則使用知名的服務埠,埠號定義在/etc/service檔案中。

32位序號,。。。。。。

C 學習之路 day4

day4知識點 mystring類物件自我實現以及部分實驗源 ifndef mystring h define mystring h include class mystring endif mystring h include mystring.h include mystring mystrin...

秋招C 開發學習之路day2

day2 類模板 建構函式和析構函式製成順序 繼承 虛函式 純虛函式 多型 類模板,同樣的類只是型別不同就可以使用乙個模板來定義類,然後呼叫時加入型別 在類的宣告之前加入 template 建構函式和析構函式的執行順序,通產來說是 先構造的函式最後執行析構函式。意思就是執行析構函式的順序與建構函式順...

秋招C 開發學習之路day9

day11 停止等待 超時重傳 流水線傳輸 視窗 擁塞控制 三報文握手 ip層提供的是最大努力服務,所以tcp下面的網路是不可靠的傳輸,所以要使用一些協議來使兩個運輸層的通訊變得可靠。停止等待協議,超時重傳。每次傳送完乙個分組就 設定乙個超時計時器,如果收到對方的確認,就撤銷已設定的超時計時器。流水...