原创 vim中的常用操作,簡單易用,避免尷尬

vim,神用的編輯器,凡人用了會怎樣呢?(各種尷尷尬尬的場面。。。) 以下是關於vim的常用操作,不多,但是必須得會!不然,用着用着,尷尬了,怎麼辦???? 1、進入vim 直接使用 vim + 你想要編輯或創建的文件,即可。例如

原创 程序、進程和線程之間的關聯與區分

程序:一個可執行文件,就是一個靜態文件存儲在計算機系統的硬盤等存儲空間中,和普通的文本文件類似,不同的是,它是一系列指令的集合,並且可以由操作系統運行。 進程:運行着的程序,是操作系統資源分配的基本單位。進程是由操作系統維護的系統

原创 當你在終端(shell)中運行一個可執行程序,誰是它的父進程?

衆所周知,在Linux系統中,所有的進程都是有父子或者堂兄關係的,除了初始進程init,沒有任何進程是完全獨立的。 除了init進程,系統中每個進程都會有一個父進程,新的進程不是被全新創建的,而是複製父進程的現有資源而生成的。 當

原创 筆記: 《分佈式系統:概念與設計》第一章 分佈式系統的特徵

1.1 簡介 分佈式系統概念:一個硬件或軟件組件分佈在連網的計算機上,組件之間通過傳遞消息進行通信和動作協調的系統 分佈式系統的特徵: 併發:用戶在各自的計算機上工作,請求某一類共享資源。系統處理共享資源的能力會隨着網絡資源(硬

原创 爲什麼析構函數中不能拋出異常?

1、C++標準指明析構函數不能、也不應該拋出異常 C++異常處理模型是爲C++語言量身設計的,更進一步的說,它實際上也是爲C++語言中面向對象而服務的。C++異常處理模型最大的特點和優勢就是對C++中的面向對象提供了最強大的無縫支

原创 聊天室應用後臺實現:基於TCP連接的多進程併發服務器

聊天室功能: 1、響應多個客戶端連接請求 2、服務端及客戶端信息的交互由用戶指定輸入 3、服務端採用多進程處理,每一個客戶端連接,都有單獨的進程去處理信息的接受與發送 服務端實現: 1、採用TCP socket建立通信連接 2、採

原创 C++:分數處理(約分、加減乘除、假分數輸出)

約分化簡中要求最大公約數,這裏使用輾轉相處法,求解兩個數的最大公約數。 其他接口都是根據分數的特性進行對應處理即可。 分數的格式化輸出接口中,對分數進行分母合法性判斷,分子爲零判斷,以及約分後,是否爲假分數的判斷,從而對應不同的輸

原创 基於TCP的回聲服務端/客戶端:實現文件讀寫

服務端實現邏輯: 1、接收來自客戶端的連接請求 2、接受來自客戶端的文件名稱信息 3、根據文件名稱打開對應文件,並讀取文件內容 4、將文件內容發送給客戶端 客戶端實現邏輯: 1、建立對服務端的TCP連接 2、接收用戶需要讀取的文件

原创 STL中迭代器的兩種模式,你知道嗎?(讀/寫模式和只讀模式)

文章目錄一、iterator 和 const_iterator二、使用const_iterator遍歷list容器三、cbegin()、cend() 與 Range-Based for 循環 一、iterator 和 const_

原创 STL中set和map容器設置排序函數:自定義或使用庫函數

set和map容易都是關聯式容器,可以實現自動排序,而其中的排序函數默認是按照從小到大的順序(或字典序)進行排序操作,我們可以根據數據類型的不同,自己設置排序函數,進而控制set和map容器的排序和輸出結果。 其中設置排序函數,可

原创 C++中常用的數學函數總結與代碼實現

1、round(): 四捨五入 2、floor() : 向下取整,“地板” 3、ceil(): 向上取整,“天花板” 4、pow():乘方 5、sqrt():開方 6、log():求以自然對數e爲底的對數 7、sin()/cos(

原创 C++獲取當前的系統時間:使用chrono程序庫

chrono程序庫定義了一系列關於時間和日期的操作接口,是自C++11之後提供的標準庫文件,定義於chrono文件中,使用時需要包含其頭文件。 獲取系統當前時間可以使用system_clock()中的now()接口,然後使用to_

原创 C++中使用mem_fun()使得類成員函數成爲仿函數

mem_fun()是STL六大組件中配接器的一種,它接收成員函數指針,使得我們可以將類成員函數當做仿函數來使用。 仿函數一般是在我們使用STL中的算法,進行自定義類型操作時,進行定義的。例如sort()算法,可自定義比較函數,fo

原创 關於C++中tuple(不定數的值組)的分析及使用

tuple表示一個不定數量的數據組,對比pair,表示兩個元素的對組,tuple就像是pair的擴展。可以指定多個不同性質的元素,使其成爲一個數據組,然後像使用一個變量一樣,使用tuple對象。 首先,使用tuple時,我們需要包

原创 C++中使用輔助函數尋找最大/最小值:min()、max()、minmax()

當我們需要在一組數據中找到最大值、最小值的時候,我們可以使用C++標準庫中的接口:min()、max()、minmax(),它們的作用如下: min() : 返回隊列中的最小值 max() : 返回隊列中的最大值 minmax()