原创 C++異常處理
關鍵字: try catch throw 什麼是異常的棧展開(異常的處理過程) main -> fun1->fun2->....->fun n-1 ->fun n 從左到右,就是整個函數的調用鏈 catch塊捕捉異常該怎麼設
原创 網絡
網絡:分層模型 7層模型和4層模型 應用層 表示層 會話層 傳輸層 網絡層 數據鏈路層 物理層 應用層 傳輸層 網絡層 數據鏈路層 爲什麼要分層??《計算機網絡》 1.大問題劃分爲小問題 各層彼此獨立 2.靈活性 適合自
原创 線程《操作系統精髓與設計》
線程:進程內部的一臺哦執行序列(路徑) 調度的基本單位 進程:一個正在運行的程序 資源分配的基本單位 線程實現 併發 與並行 線程間同步 《操作系統精髓與設計》 線程安全 保證線程安全 :1 同步
原创 C與C++區別 makefile文件 gdb調試
C與C++區別 gcc .cpp -> c++語法 編譯 不能鏈接c++庫 .c ->c語法 g++ .cpp 都通過c++語法編譯 .c 預編譯 編譯 彙編 鏈接(
原创 進程間通信
進程間通信:管道 信號量 消息隊列 共享內存 套接字 管道 有名管道 mkfifo mkfifo() 無名管道 pipe() 區別:有名可以在任意兩個進程間通信,無名可以在父子進程間進行通信 管道通信方
原创 進程
《linux內核設計與實現》第三章 進程概念及狀態 進程:一個正在運行的程序,資源分配的基本單位 進程狀態:就緒 運行 阻塞 進程描述符:進程控制塊(PCB),存放進程的屬性信息 僵死進程:子進程先結束,父進程沒有調用wai
原创 靜態庫與共享庫
linux程序設計第四版 庫:預先編譯好的方法/函數的集合 .c文件編譯成.o文件,再將.o文件的方法放入庫文件 存放庫文件的標準路徑 /usr/lib 用戶安裝的 /lib 系統本身的 所有的頭文件.h存放在 usr/inclu
原创 LeetCode 筆試題 數組中的奇數放在偶數之前
問題描述 給定一個數組,將其偶數元素放到奇數元素的後面 輸入 {2,4,1} 輸出{1,2,4} 輸出後,元素的順序不用關心,只要所有奇數元素在偶數元素之前 線性時間完成 代碼 /* 思路:定義兩個指針分別指向頭尾,然後
原创 LeetCode 筆試題 String to Integer (atoi) (字符串轉化爲整數)
問題描述 請你來實現一個 atoi 函數,使其能將字符串轉換成整數。 示例 1: 輸入: "42" 輸出: 42 示例 2: 輸入: " -42" 輸出: -42 解釋: 第一個非空白字符爲 '-', 它是一個負號。
原创 LeetCode 筆試題 Implement strStr() (實現 strStr() 函數)
問題描述 給定一個 haystack 字符串和一個 needle 字符串,在 haystack 字符串中找出 needle 字符串出現的第一個位置 (從0開始)。如果不存在,則返回 -1。 示例 1: 輸入: haystack = "h
原创 LeetCode 筆試題 Reverse Integer(翻轉整數)
問題描述 給出一個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。 示例 1: 輸入: 123 輸出: 321 示例 2: 輸入: -123 輸出: -321 示例 3: 輸入: 120 輸出: 21 注意:
原创 LeetCode 筆試題 Valid Anagram (判斷兩個字符串是否爲異位詞)
問題描述 給定兩個字符串 s 和 t ,編寫一個函數來判斷 t 是否是 s 的一個字母異位詞。 示例 1: 輸入: s = "anagram", t = "nagaram" 輸出: true 示例 2: 輸入: s = "rat",
原创 LeetCode 筆試題(Rotate Image) 旋轉圖像
問題描述 給定一個 n × n 的二維矩陣表示一個圖像。 將圖像順時針旋轉 90 度。 說明: 你必須在原地旋轉圖像,這意味着你需要直接修改輸入的二維矩陣。請不要使用另一個矩陣來旋轉圖像。 示例 1: 給定 matrix = [
原创 LeetCode 筆試題 First Unique Character in a String (找到第一個不重複的字符)
問題描述 給定一個字符串,找到它的第一個不重複的字符,並返回它的索引。如果不存在,則返回 -1。 案例: s = "leetcode" 返回 0. s = "loveleetcode", 返回 2. **注意事項:**您可以假定該字
原创 LeetCode筆試題 Intersection of Two Arrays(求兩個數組的交集)
問題描述 給定兩個數組,編寫一個函數來計算它們的交集。 示例 1: 輸入: nums1 = [1,2,2,1], nums2 = [2,2] 輸出: [2,2] 示例 2: 輸入: nums1 = [4,9,5], nums2 =