原创 單鏈表基礎篇

1.比較順序表和鏈表的優缺點,說說它們分別在什麼場景下使用? 1). 順序表支持隨機訪問,單鏈表不支持隨機訪問。 2). 順序表插入/刪除數據效率很低,時間複雜度爲O(N)(除尾插尾刪),單鏈表插入/刪除效率更高,時間複雜度

原创 拷貝構造的N種情況

1.C++對傳參合傳返回值時構造的優化處理的總結。 在c++中,傳參和傳返回值時,如果是引用類型,則不用調用拷貝構造函數,直接返回別名。當語句爲一個表達式時,編譯器會選擇優化,將構造函數與拷貝構造合併。在C++中,調用幾次構造

原创 學習c中運算符的簡單總結

     今天學習了操作符感覺計算機語言也像其他語言一樣,挺有意思的,分享一下心得吧! 操作符可分爲算術操作符,移位操作符,位操作符,賦值操作符,單目操作符,關係操作符,邏輯操作符,條件操作符。1算術操作符  + - * / %1)除

原创 引用計數寫時拷貝

拷貝可以概括性的分爲以下幾類 1 s1和s2分別有它們自己的值,我們需要將s1的對應的空間釋放掉然後賦給其s2的值 2 s1和s2分別有它們自己的值,但是s1還有其他別名,我們需要引入計數,爲了防止其在析構時程序崩潰(多次

原创 默認成員函數+運算符重載

1.面向對象程序設計 概念:(Object Oriented Programming,縮寫:OOP)是一種程序設計範型,同時也是一種程序開發的方法。 對象指的是類的實例,將對象作爲程序的基本單元,將程序和數據封裝其中,以提高軟

原创 數組中sizeof與strlen的區別

sizeof與strlen的區別 捋完之後快要瘋了 sizeof是計算所佔字節數 strlen是從所要求的位置開始遇到/0停止的長度  

原创 cpp入門基礎知識

 1.命名空間域是隨標準C++而引入的。它相當於一個更加靈活的文件域(全局域),可以用花括號把文件的一部分括起來,並以關鍵字namespace開頭給它起一個名字: namespace name1 {     int a = 0; }

原创 冒泡排序

代碼實現 #include<stdio.h> void bubble_rank(int arr[],int sz) {  int i=0,j=0;  for(i=0;i<sz-1;i++)  {   for(j=0;j<sz-i-1;j

原创 菱形繼承

在探索菱形繼承遇到的問題及其總結 先說什麼是菱形繼承如圖(這只是一種) #include<iostream> using namespace std; class A { public: int _a; }; cl

原创 劍指offer:正則表達式匹配

請實現一個函數用來匹配包括'.'和'*'的正則表達式。模式中的字符'.'表示任意一個字符,而'*'表示它前面的字符可以出現任意次(包含0次)。 在本題中,匹配是指字符串的所有字符匹配整個模式。例如,字符串"aaa"與模式"a.a

原创 孤兒進程和殭屍進程

孤兒進程:一個父進程退出,而它的一個或多個子進程還在運行,那麼那些子進程將成爲孤兒進程。孤兒進程將被init進程即1號進程收養,並由init進程進行管理。殭屍進城:如果子進程退出,而父進程並沒有調用wait或waitpid獲取子進程的狀態

原创 鏈表的相關面試題

1.判斷單鏈表是否帶環?若帶環,求環的長度?求環的入口點?1)鏈表是否帶環,我們需要用快(走兩步)慢(走一步)指針,如果慢的和快的相等則鏈表帶環bool ListCycl(Node* pHead) { if (pHead == NULL

原创 文件系統----軟硬鏈接

ls -l 或者ll查看文件,可以看到如下圖所示:ls -l 進程讀取了存儲在磁盤上的文件信息,然後顯示出來除了這個方式還有一個查看文件信息的方法是stat命令我們可以關注inode的信息,一個文件只有一個inode號。這就必須瞭解我們的

原创 求朋友圈的個數---並查集

問題:1、已知,有n個人和m對好友關係(存於一個集合r中)2、如果兩個人是直接的或者間接的好友,(那麼他們的朋友圈可以合併)則以下爲例:int a[][2] = { { 1, 2 }, { 2, 3 }, { 4, 5 } };1)有5個

原创 基於TCP實現的多用戶服務器

1.我們用多進程來實現多用戶的通信多進程版本——讓子進程的子進程即孫子進程,(子進程如果不等父進程會成爲殭屍進程)#include<stdio.h> #include<stdlib.h> #include<unistd.h> #inclu