原创 淺談——void (*signal(int, void (*)(int)))(int) 函數聲明

先說結論:這是一個返回類型是函數指針的函數聲明,該函數的參數是一個int類型和一個函數指針。 現在我們先拋開上面那個複雜的定義,先看一下下面的需求 定義一個函數; 該函數具有以下特點,兩個參數,返回值是函數指針,並且一個參數也是

原创 STL學習——淺談空間配置器

1. 什麼是空間配置器         空間配置器,顧名思義就是爲各個容器高效的管理空間(空間的申請與回收)的,在默默地工作。雖然在常規使用STL時,可能用不到它,但站在學習研究的角度,學習它的實現原理對我們有很大的幫助。 2.

原创 C+學習——淺談位圖與布隆過濾器

1.位圖 所謂位圖,就是用每一位來存放某種狀態,適用於大規模數據,但數據狀態又不是很多的情況。通常是用來判斷某個數據存不存在的。 題目: 給40億個不重複的無符號整數,沒排過序。給一個無符號整數,如何快 速判斷一個數是否在這40

原创 人工智能應屆畢業生月薪20k+,他們是如何做到的?

        人工智能作爲當下熱門行業中的熱門,釋放出了大量的工作機會,而由於人工智能核心人才的缺乏,使得相關崗位的薪資日益水漲船高,特別是AI算法工程師崗,在北京、上海、廣州、深圳、杭州等一線城市的月薪平均高達23K以上。人才

原创 數據結構學習——淺談AVL樹的實現過程

AVL樹介紹 AVL樹是根據它的發明者G.M. Adelson-Velsky和E.M. Landis命名的。 它是最先發明的自平衡二叉查找樹,也被稱爲高度平衡樹。相比於"二叉查找樹",它的特點是:AVL樹中任何節點的兩個子樹的高度

原创 數據結構學習——鏈表相關習題(持續補充...)

合併有序鏈表 思路:先比較兩個鏈表的首元結點,較小者作爲合併後鏈表的首元結點。之後遞歸比較。 注意點:1.想清楚合併的過程; 2:注意代碼的健壯性 代碼: ListNode* Merge(ListNode* pHead1,Lis

原创 Linux學習—條件變量實現同步

       與互斥鎖不同,條件變量是用來等待而不是用來上鎖的。條件變量用來自動阻塞一個線程,直到某特殊情況發生爲止。通常條件變量和互斥鎖同時使用。        條件變量使我們可以睡眠等待某種條件出現。條件變量是利用線程間共享的

原创 STL學習——淺談List類的模擬實現

       本文模擬實現了c++標準模板庫中的List。 它的底層實現是一個帶頭結點的雙向循環鏈表。        一個注意要點是,不同於vector和string的迭代器的封裝 typedef T* Iterator Li

原创 STL學習——淺談vector類的模擬實現

        C++ 的一個常見面試題是讓你實現一個 String 類,限於時間,不可能要求具備 std::string 的功能,但至少要求能正確管理資源。具體來說: 1.能像 int 類型那樣定義變量,並且支持賦值、複製。 2

原创 VS編譯器錯誤:意外的標記位於“;”之前

今天遇到了一個讓人哭笑不得問題 說是語法錯誤“;”,所以就以爲是函數哪塊少了或者多了一個分號“;”,然後就一直在函數部分不停地審查括號,一遍又一遍。但是找了好久還是發現沒有錯誤啊,頭大…最後才發現真實的錯誤原因。。。居然是沒有包

原创 淺談哈希表---開散列和閉散列

寫在前面        順序結構以及平衡樹中,元素關鍵碼與其存儲位置之間沒有對應的關係,因此在查找一個元素時,必須要經過關鍵碼的多次比較。順序查找時間複雜度爲O(N),平衡樹中爲樹的高度,即O( ),搜索的效率取決於搜索過程中元素

原创 數據結構---二叉搜索樹相關代碼(c++實現)

二叉搜索樹的c++實現 #include<windows.h> #include<iostream> using namespace std; typedef int DataType; struct node{ publ

原创 C++:利用fstream流讀寫文件

ofstream 是從輸出文件流,ifstream 是從輸入文件流 ofstream 是從內存到硬盤,ifstream 是從硬盤到內存 不多囉嗦,明白了這兩點之後,直接簡單的代碼帶入理解。   ifstream類的使用:將指定路徑

原创 Linux: 淺談連接文件ln

寫在前面         在linux下面的連接文件有兩種。一種是類似Windows的快捷方式功能的文件,可以讓你快速連接到目標文件(或目錄);另一種則是通過文件系統的iNode連接來產生新文件名,而不是產生新文件,這種稱爲硬連接

原创 Linux :數據流重定向

什麼是數據流重定向?        一般來說,如果你要執行一個命令,這個命令可能會由文件讀入數據,經過處理之後,再將數據輸出到屏幕上。 標準輸出與標準錯誤        簡單地說,標準輸出指的是命令執行所回傳的正確的信息,而標準錯