不使用任何字符串庫函數是實現strcpy char* _strcpy(char* dest, const char* src) { assert(dest != NULL && src != NULL); char
加上以上的宏是未了防止頭文件被重複引用,當編譯器第一次編譯頭文件的時候,會定義_HEAD_H,然後如果還有文件引用了該頭文件,但_HEAD_H已經被定義了,所以就不會在去編譯你的頭文件添加的內容。這就是條件編譯。 比如你有兩個cp
1. new運算符和operator new() new: 指我們在C++裏通常用到的關鍵字。比如 A *a=new A,爲了實現這一目的,應用程序需要重載new運算符和delete運算符以控制內存分配的過程。對於new來說,有new和:
好長一段時間沒明白共享指針的理解和使用,今天認認真真查了一些資料,搞懂了很多。在這裏整理了一下兩個鏈接的內容。 主要參考鏈接: https://blog.csdn.net/u011866460/article/de
這篇爲了理解,自己瞎寫的,建議看下面這篇,裏面例子很好很有用 https://blog.csdn.net/u011726005/article/details/79874539 //這篇
substr()函數定義於頭文件 <string> 一、參數:(pos, n) pos - 從此位置開始拷貝 n - 拷貝 n 長度的字符串 二、形式: s.substr(pos, n) 三、解釋: 返回一個string,包含
queue模版需要定義兩個模版參數,一個是元素類型,一個是容器類型,元素類型是必要的,容器類型是可選的,默認爲dqueue類型。 定義queue對象的示例代碼如下: queueq1; queueq2; queue的基本操作有:
我在學校上C++課的時候,老師開始教的是類中所有變量的大小加起來就是類的大小。但是實際用“ sizeof ”測試就發現不對,看下面的例子。 class s { public: char a; //1字節 int b; //
sort函數 sort(begin, end , cmp)函數用於給對象排序,一共有三個參數。 begin :對象需要排序的起始位置 end :對象需要排序的末尾位置 排序區間爲 [begin, end) 左閉右開 cmp :用
vector(向量) 聲明和定義 vector<int> a; //聲明一個存儲對象爲 int 的向量 vector<int> b(10, 1); //聲明一個存儲對象爲 int 的向量,有10個元素,且都賦值爲1; //
char是很多語言裏的字符類型,比如c++/java。在c++中,char默認是有符號類型(signed)的,但是爲什麼一個字符要分有符號和無符號呢?這有什麼區別或者有什麼意義嗎?我開始的時候也總是不明白。查了很多資料發現一個不錯