原创 求一個數字二進制中1的個數

1.一個很簡單的思路,把每一位與1相與如果結果是1,就代表這一位是1,相反是0 int BinaryNumOne1(int num) { int count = 0; while (num) { if (num & 1) {

原创 關於scoped_ptr和scoped_array

scoped_ptr是Boost庫中的一個智能指針,它和auto_ptr非常類似,可以完成資源的自動釋放。scoped_ptr與auto_ptr的區別在於,auto_ptr可以實現資源的轉移,但是scoped_ptr禁止了資源的轉移,它讓

原创 帶有虛函數的菱形繼承和帶有虛函數的菱形虛繼承

對於某些函數來說,基類希望它的派生類定義適合自身的版本,此時基類就將這些函數聲明爲虛函數。 在存在虛函的類,創建對象時會產生虛表指針,虛表指針指向一個虛表,這時就可以通過虛表訪問自己定義的函數。 通過下面兩種繼承進行分析: 【帶有虛函數

原创 Linux利用管道實現進程間通信

系統中,進程之間獨立性大,互相的影響較小,所以造成進城之間相互通信的難度較大。 所在想辦法讓進程去看到一份相同的公共資源(一般操作系統提供,這資源不屬於任何進程),以這樣的方式實現進程的通信。 用管道實現進程間通信的原理:如下圖所示

原创 Linux之線程的創建、等待、終止及分離

線程概念:線程是在進程內部運行的(也就是在進程的地址空間內運行的),是進程的一個執行分支。 線程與進程的區別: Linux下線程是在進程的地址空間內運行的,線程擁有進程的一部分資源與代碼,是進程的一個執行分支線程是cpu的基本調度單位

原创 Linux下設置粘滯位防止其他用戶刪除當前用戶文件

通常有這樣的情況,有多個用戶需要向一個文件夾內放置文件,但是他們不能互相刪除對方的文件,設置用戶權限可以實現麼? 用root用戶創建一個文件夾,給以777的權限 然後在這個文件夾下面創建一個文件test 發現它的權限爲644

原创 遞歸形式二分查找

在進行二分查找時,最需要注意的有以下幾點: 要查找的對象是否是有序的,是升序的還是降序的,不同的順序有不同的處理方法給出查找對象的區間,是 [ ],還是 [ )遞歸出口,根據給出的區間遞歸出口要注意,[ ]對應出口爲left <= ri

原创 Liunx線程的同步

什麼是線程間的同步: 對於可以處理同一公共資源的線程來說他們必須是互斥的,這樣才能保證數據的正確性。可是就這一種關係仍然不能處理好這些線程之間的問題。 比如,兩個線程可以訪問同一塊緩衝區,線程1可以往裏面寫數據,線程2可以從中讀數據,要

原创 使用 zabbix-agent 主動模式監控 Windows 主機

使用 zabbix-agent 主動模式監控 Windows 主機 安裝 zabbix-agent agent下載地址:https://www.zabbix.com/cn/download_agents#tab:32 解壓後,目錄

原创 AVL樹的實現

AVL樹: AVL樹也成爲平衡二叉樹,它是這樣定義的: 一棵AVL樹或者是空樹,或者是具有以下性質的二叉搜索樹: 1、它的左右子樹都是AVL樹 2、左子樹和右子樹高度之差(簡稱平衡因子)的絕對值不超過1(-1、0、1) AVL樹的插

原创 用冒泡排序模擬實現qsort

在學習使用過qsort之後,一直在想是否能用其他的排序算法去模擬實現它的功能,把自己的實現寫出來,也是對自己的一種總結吧。 因爲模擬是實現qsort,實現原理與qsort基本相同所以,給出和它一樣的參數列表。 void BubbleSo

原创 菱形繼承和菱形虛繼承

繼承是C++的一大特點,我們通過菱形繼承和菱形虛繼承對繼承進行進一步的分析。 【菱形繼承】 創建一個基類A讓B1和B2公有繼承於它,讓C公有繼承B1和B2。 class A { public : A() :a(1

原创 Linux的find命令

Linux下find命令具有強大的查找功能,它可以完成各種情況的查找工作,所以find命令有很多選項。 【命令功能】      用於在文件數中查找文件,並做出相應的處理(可能訪問磁盤) 【命令格式】      find pathnam

原创 Linux利用mutex互斥鎖實現線程的互斥

在多個線程對共享數據進行處理時,可能會發生衝突從而導致數據結果與預期結果不一樣,導致程序運行錯誤。 例:在一個主線程中有兩個線程,這兩個線程都對全局變量num進行+1操作。 注意:上述說的例子可能不會發生,只有當線程1還未將nu

原创 Linux利用信號量實現線程的同步與互斥

線程使用互斥鎖可以實現線程間的互斥,而互斥鎖本身就是對資源的一種標識狀態,當可以申請到鎖時說明此時資源可以使用,當申請鎖失敗時說明資源此時被其他線程所佔用不可使用,我們可以使用信號量來代替互斥鎖實現。 信號量用來表示資源數目,當一個線程