原创 每天幾道筆(面)試題

分析下面代碼有什麼問題? (1) void test1() { char string[10]; char* str1 = "0123456789"; strcpy( string, str1 ); } 解答:s

原创 近兩週學習總結

<1>用了幾天把高效c++看了一遍(下面主要整理了自己平時容易遺忘或者沒有常用的知識點) 1. c++中的4中強制轉換 (1)const_cast 只能對指針或者引用去除或者添加const屬性,對於變量直接類型不能使用const_

原创 智能指針的模擬實現

1.引入 int main() { int *p = new int; //裸指針 delete p; return 0; } 在上面的代碼中定義了一個裸指針p,需要我們手動釋放。如果我們一不小心忘記釋放這個指

原创 進程和線程的區別

概念 進程:正在運行中的程序。 線程:進程中的一條執行路徑。 2.區別 (1)通常在一個進程中可以包含若干個線程,它們可以利用進程所擁有的資源。在引入線程的操作系統中,通常都是把進程作爲分配資源的基本單位,而把線程作爲獨立運行和

原创 每天幾道面(筆)試題

1.兩個棧實現一個隊列、兩個隊列實現一個棧 //兩個隊列實現一個隊列 class Solution { public: void push(int node) { stack1.push(node);

原创 二分查找

二分查找又稱折半查找,優點是比較次數少,查找速度快,平均性能好;其缺點是要求待查表爲有序表,且插入刪除困難。因此,折半查找方法適用於不經常變動而查找頻繁的有序列表。二分查找的基本思想是將n個元素分成大致相等的兩部分,取a[n/2]與x做比

原创 每天幾道編程題

1.在一個二維數組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。 /* 這個二維數組是有序的從左向右看遞增,從上到下遞增 從左下角開

原创 數組和指針的區別,數組和引用的區別

數組和指針的區別 (1)定義 數組是一個符號,不是變量,因而沒有自己對應的存儲空間。但是,指針是一個變量,裏面存儲的內容是另外一個變量的地址,因爲是變量所以指針有自己的內存空間,只不過裏面存儲的內容比較特殊。 (2)區別 a.

原创 QT+VS2013環境的搭建及配置

這篇博客就對自己第一週所學的知識進行一個總結。 (1)軟件的安裝 1. 安裝vs2013 進入vs官網,下載VS安裝包,進入傻瓜式安裝。 2.安裝QT 進入 qt官方網站,下載qt安裝包,進入安裝 我安裝的時候安裝

原创 常用排序的實現及比較

排序的穩定性:假設在待排序的序列中存在多個相同關鍵字的記錄,經過排序,這些關鍵字的位置保持不變,則稱這個排序算法是穩定的,否則是不穩定的。 1. 選擇排序(不穩定) 選擇排序是一種直觀的排序算法,每次找到最大的或者最小的數與,存放在序

原创 帶頭單鏈表的實現(嵌套類的實現)

鏈表是一種物理存儲單元上非連續、非順序的存儲結構,數據元素的邏輯順序是通過鏈表中的指針鏈接次序實現的。鏈表由一系列結點(鏈表中每一個元素稱爲結點)組成,結點可以在運行時動態生成。每個結點包括兩個部分:一個是存儲數據元素的數據域,另一個是存

原创 c++設計模式—觀察者模式

Observer模式(觀察者模式)應該可以說是應用最多、影響最廣的模式之一。因爲 Observer 的一個實例 Model/View/Control( MVC) 結構在系統開發架構設計中有着很重要的地位和意義, MVC實現了業務邏輯和表示

原创 TCP的擁塞控制

目的 擁塞控制:當一個網絡中數據一次性發太多時,爲了避免由於數據太多而造成網絡鏈路或者路由器過載。 解決的方法 慢啓動、擁塞避免 快速重傳、快速恢復 (1)慢啓動 首先先給發送方設置一個“擁塞窗口”的變量,這個變量和接收端的接

原创 gcc和g++的區別

一、區別 1. gcc是GCC中的c編譯器 g++是GCC中的c++編譯器 2. 對於後綴爲.c的文件,gcc當成c文件處理,而g++當成c++處理 對於後綴爲.cpp的文件,兩者都當成.cpp文件處理