原创 my_strcpy

#include<stdio.h> void my_strcpy(char* dest,const char* str) { if(NULL != dest || NULL != str) { while(

原创 [c++]基類對象作爲函數參數(賦值兼容規則)

編程處理教師的基本情況。要求: 1、定義一個“person”類,用來存儲及處理人的姓名、性別、年齡,成員函數自定; 2、定義“teacher”類,公有繼承“person”類用來存儲教師所在學院、所學專業、學歷、學位、職稱、教齡等,成員函數

原创 [項目]註釋轉換

——C++註釋轉換爲標準C語言註釋

編寫註釋轉化程序,實現對一個C/C++語言程序源文件中註釋的轉換功能 1.C++風格的註釋//註釋轉換爲標準C分風格/* */註釋 2./* */風格的註釋保持原樣 3.所有的轉換需要符合語法規則 4.註釋轉換需要支持註

原创 [c++]String字符串類的運算符重載

在c++中有一個新定義的類型string,可以不用那麼麻煩的操作字符串,並且一些高級的運算符重載讓她的使用更加便捷 下面是String類的定義和成員函數的定義: #ifndef operator_operator_h #define op

原创 c++到com組件過度(一個實例)

com的核心體系結構來源於c++標準實現 c++的重用機制有一個嚴重的缺陷:要想試用該源對象就必須提供源代碼,這樣的話寶貴的技術會隨之暴露。要解決這個問題在windows下可以使用DLL(dynamic link library 動態鏈

原创 [項目]文件壓縮

文件的壓縮和解壓縮 由於存儲一個int 最少需要8個字節 一個char 最少需要1個字節(32位),但大多數時候在一個文件中會有很多重複的數字或者字符,將其進行重新編碼,比如說:s:1001 在這個文件中這就代表s 從而就產生了哈夫曼編碼

原创 const

const參數: 防止傳入函數的參數被改變 參數分爲輸入型參數和輸出型參數,const只能修飾輸入型參數 一般的輸入型參數採用指針傳遞,加const可防止意外的改變指針 例如 StringCopy 函數: void String

原创 [數據結構] 時間複雜度的理解

時間複雜度:函數計算之行的基本次數 面試tip:面試官問及時間複雜度不一定只有最壞的,一般人一般會直接答最壞的,其實還有最好和平均。 例如:在一個長度爲N的線性表中搜索一個數據x。 最壞:沒有找到,到最後才找到 平均:不好不壞到中間才找到

原创 [C++]單例模式

單例模式:保證一個類只創建一個對象。要考慮到線程安全問題 線程安全:在一個對象new的時候,另一個對象如果同時new,會造成創建的對象不是單類的。所以在第一個對象進行開闢空間時要加互斥鎖 mutex._Lock(); mutex._U

原创 智能指針的發展

通常是經由類模板來實現。藉由模板來達成泛型,通常藉由類的析構函數來達成自動釋放指針所指向的內存或對象。 智能指針的最初動機是使得下面的代碼更安全,最初使用 void foo() { Type* ptr = new Type[10]

原创 C語言單鏈表——之常見面試題目2

接上篇還是無頭節點的: 實現的函數聲明: // 從頭至尾打印單鏈表 void PrintListTailToHead(PSlist pHead); // 鏈表的非頭結點前插入元素data void InsertNotHead(PSlis

原创 [linux] 進度條

首先需要清楚一個概念回車和換行的區別: 回車:/r 回到本行首位 再輸入會覆蓋本行原來內容 換行:/n 回到當前位置的下一行 不會回到行首 函數的實現 .c文件應改包含函數聲明 下面是源碼: 下面是Makefile: 結

原创 [linux]vim配置

vi m

原创 time wait

根據TCP協議定義的3次握手斷開連接規定,發起socket主動關閉的一方 socket將進入TIME_WAIT狀態,TIME_WAIT狀態將持續2個MSL(Max Segment Lifetime),在Windows下默認爲4分鐘,即24

原创 [linux]mkdir touch stat find 指令

mkdir 在想要創建目錄的目標路徑下你(user)必須具有訪問權限,也就是具有寫權限 在該目錄下再創建目錄也有同樣要求,不管時root還是普通用戶都對應一個權限 創建/刪除文件 user必須具有可執行權限(x)