原创 網絡基礎 -- 網絡層(IP協議)

目錄 網絡層 IP協議  IP報文格式(IPv4) 網段劃分(地址管理) CIDR 特殊的IP地址 IP地址的數量限制 私有IP地址和公網IP地址 路由選擇 ICMP協議 網絡層 介於傳輸層和數據鏈路層之間, 它在數據鏈路層提供的兩個相鄰

原创 Linux 調試器gdb命令及TUI模式

gdb  gdb是Unix及類Unix下的調試工具。在Windows下, 我們習慣用了有圖形界面的,像VC, VS, BCB等IDE的調試,但如果是 在Unix或類Unix平臺下開發, gdb是我們的首選 . 背景 我們編寫的程序可

原创 哈希表(散列表) -- 概念原理以及代碼實現

目錄 什麼是哈希表? 哈希函數 1. 閉散列 線性探測 閉散列的擴容 兩個小問題 閉散列的簡單實現  2.開散列 開散列的增容 開散列與閉散列比較 有迭代器的開散列實現 開散列實現unordered_map 哈希的應用 什麼是哈希表?

原创 C++ 重載, 重定義, 重寫

先來看看定義 重載 : C++允許同一作用域中有同名函數,  這些同名函數的形參列表(參數個數 或 類型 或 順序)必須不同(返回值類型無要求),在處 理實現功能類似數據類型不同的問題上保證了接口的統一性   重寫 : 也叫覆蓋. 在繼承

原创 網絡基礎(概念/網絡協議/OSI七層模型/TCP/IP四(五)層模型)

目錄 計算機網絡 根據網絡覆蓋範圍的範圍分類 無線網絡 網絡協議 協議分層 OSI七層模型 TCP/IP四(五)層模型 數據包封裝和分用 網絡中的地址管理 認識IP地址 認識MAC地址 計算機網絡 在人們發明出了計算機之後, 並沒有隨之

原创 翻轉二叉樹以匹配先序遍歷

語言: C++ 題目描述 : 給定一個有 N 個節點的二叉樹,每個節點都有一個不同於其他節點且處於 {1, ..., N} 中的值。 通過交換節點的左子節點和右子節點,可以翻轉該二叉樹中的節點。 考慮從根節點開始的先序遍歷報告的 N 值

原创 Linux 進程等待

目錄 進程等待 進程等待的必要性 進程等待的方法 wait() waitpid() 參數int* status 進程等待                                                          

原创 C++ 使用delete釋放new[N]的問題

瞭解過C++的語法知識, 就應該知道, new 申請的空間用 delete 釋放, new [] 申請的連續空間用delete [] 釋放, 這樣肯定是沒什麼問題, 是正確的. 但當我們不遵循規則時會怎樣呢? 雖然在我們自己在開發過程肯

原创 網絡基礎 -- 數據鏈路層(以太網協議/ARP協議)

目錄 數據鏈路層 MAC地址 以太網 以太網的幀格式 ARP協議 -- 地址解析協議 ARP數據報的格式             RARP協議 相關 :  網絡基礎 -- 應用層HTTP協議              網絡基礎 -- 傳輸

原创 網絡基礎 -- 其他重要協議或技術(DNS/NAT/NAPT/代理服務)

目錄 其他重要協議或技術 DNS -- 域名系統(服務)協議 域名的解析流程 NAT/NAPT 代理服務 其他重要協議或技術 DNS -- 域名系統(服務)協議 DNS : 域名系統 (服務) 協議:是一種分佈式網絡目錄服務, 主要用於

原创 Linux 多線程(線程池/線程安全的單例模式/STL容器線程安全問題/智能指針線程安全問題)

目錄 線程池 線程安全的單例模式 餓漢實現方式和懶漢實現方式 STL線程安全的問題 智能指針線程安全問題 線程池 與之前的生產者消費者模型,  讀者寫者模型一樣, 線程池也是爲了解決某些典型場景下的問題而出現的. 舉個例子, 當我們雙十

原创 Linux 多線程之線程安全(生產者消費者模型/POSIX信號量/讀者寫者模型/讀寫鎖/自旋鎖)

目錄 生產者消費者模型 基於阻塞隊列(BlockingQueue)的生產者消費者模型 POSIX信號量 POSIX信號量接口 信號量實現的環形隊列的生產者消費者模型  讀者寫者模型 自旋鎖 讀寫鎖的接口 生產者消費者模型 概念 生活中的

原创 Linux 多線程之線程安全(同步與互斥/互斥鎖/條件變量/死鎖/)

目錄 線程安全 線程同步與互斥 互斥鎖(量)         互斥鎖接口 可重入函數&線程安全 死鎖 條件變量 條件變量接口 條件變量使用規範 爲什麼pthread_cond_wait()中要傳入互斥鎖? 爲什麼互斥鎖和條件變量要配合使用

原创 Linux 多線程(線程控制(創建/終止/等待/分離))

目錄 POSIX線程庫 創建線程 線程ID及進程地址空間佈局 線程終止 線程等待 線程分離 線程概念/特點/優缺點/與進程比較 寫在另一篇博客 戳鏈接( ̄︶ ̄)↗https://blog.csdn.net/qq_41071068/arti

原创 什麼是線程?

什麼是線程? 說到線程, 離不開的概念就是進程 . 也離不開計算機或操作系統的發展過程. 簡單的說一下. 進程的引入 在計算機高度發達的今天, 我們很難想象以前的計算機是什麼樣的.  最初的時候, 計算機只能接受一些特定的指令, 用