原创 定位new運算符的使用

最近在研究STL的空間配置器的時候,使用到內存池和定位new的場景,感覺知識優點遺忘,總結總結首先,什麼是定位new??官方解釋:我的理解:先申請一塊內存空間,然後在這段空間上來構造對象(確定對象的位置),常使用到的場景是內存池內置類型使用

原创 在線OJ項目

需求:實現一個在線判題系統,用戶通過瀏覽器編寫和提交代碼,通過網絡傳輸,將代碼上傳到後臺,後臺對提交的代碼進行編譯運行,將編譯運行結果反饋給用戶在線OJ前後臺的流程: 項目分爲五大模塊: 網絡服務模塊搭建http服務器:本人採用的是Gi

原创 基於huffman樹的文件壓縮項目

壓縮原因1.文件太大,節省空間2.提高數據在網絡上傳輸的效率3.對數據起到保護作用---加密文件壓縮類型無損壓縮:源文件被壓縮之後,可以通過解壓縮還原成與源文件相同的格式有損壓縮:源文件被壓縮之後,解壓縮無法還原成與源文件相同,但識別其內容

原创 數組中出現次數超過一半的數字(C++劍指Offer詳解)

第一次見到這個題,感覺簡單到爆,不就是sort函數排個序,取中位數,遍歷一遍計個數不就OK了嗎?但是面試時,sort可能會讓你自己去實現,或者說,題目要求:不能修改輸入的數組呢???第一種方法(基於Partition函數)注意:此方法修改了

原创 進程信號

信號的基本概念信號就是一個軟件中斷,可以打斷進程的執行,讓進程處理信號的事件信號種類:1-31信號是不可靠信號:信號有可能會丟失(非實時信號) 1.向進程發送非實時信號(該信號沒有被掛起),信號響應會嵌套(即正在響應某個函數時,有其它信號發

原创 C++二叉搜索樹與雙向鏈表(劍指Offer精簡版)

題目:輸入一棵二叉搜索樹,將該二叉搜素樹轉換成一個排序的雙向鏈表。二叉樹節點定義如下: struct TreeNode { int val; struct TreeNode *left; struct TreeNod

原创 C/C++文件讀寫操作

基於C的文件操作在ANSI C中,對文件的操作分爲兩種方式,即流式文件操作和I/O文件操作,下面就分別介紹之。 一、流式文件操作這種方式的文件操作有一個重要的結構FILE,FILE在頭文件stdio.h中定義如下: typedef stru

原创 賦值兼容規則(C++)

在一定條件下,不同類型的數據之間可以進行類型轉換,如可以將整型數據賦給雙精度型變量。在賦值之前,先把整型數據轉換成雙精度型數據,然後再把它賦給雙精度型變量。這種不同類型數據之間的自動轉換和賦值,稱爲賦值兼容。在基類和派生類對象之間也存有賦

原创 C++語言中必須使用【初始化列表】初始化數據成員的三種情況

類對象的構造順序是這樣的: 1.分配內存,調用構造函數時,隱式/顯示的初始化各數據成員; 2.進入構造函數後在構造函數中執行一般賦值與計算。 使用初始化列表有兩個原因: 原因1.必須這樣做: 《C++ Primer》中提到在以下三種情

原创 C++中的 虛函數 純虛函數 虛基類(virtual)

前言:需要了解三者的區別,必須要掌握多態的三個必要條件: 繼承 重載 父類指針指向子類對象。 虛函數 純虛函數 虛基類三者區別 1.虛函數是用於多態中virtual修飾父類函數,確保父類指針調用子類對象時,運行子類函數的。 2.純

原创 C++內聯函數(inline)

Tip1:只有當函數只有 10 行甚至更少時纔將其定義爲內聯函數. 定義: 當函數被聲明爲內聯函數之後, 編譯器會將其內聯展開, 而不是按通常的函數調用機制進行調用. 優點: 當函數體比較小的時候, 內聯該函數可以令目標代碼更加高效. 對

原创 藍橋杯十六進制轉十進制,十進制轉十六進制精簡版(C++)

//十六進制轉十進制 #include<iostream> using namespace std; #include<string> #include<cmath> int main() { char a[100];

原创 (C++)std::sort以及std::qsort用法(藍橋杯序列排序)

函數名 功能描述 sort 對給定區間所有元素進行排序 stable_sort 對給定區間所有元素進行穩定排序 partial_sort 對給定區間所有元素部分排序 partial_sort_copy 對給定區間複

原创 C++類型萃取(分文件管理)

類型萃取類型萃取是基於c++中的模板特化來實現的,是對於模板特化的應用。 以通用的拷貝函數爲例 拷貝函數,c++自帶的拷貝函數是俗稱的淺拷貝,淺拷貝對於一些內置類型而言不會出錯,但對於一些自定義類型在拷貝的時候就會出現內存訪問錯誤(中斷

原创 棧的彈出壓入序列(C++)

題目:輸入兩個整數序列,第一個序列表示棧的壓入順序,請判斷第二個序列是否可能爲該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓入順序,序列4,5,3,2,1是該壓棧序列對應的一個彈出序列,但4,3,5,1,