1. const限定符與#define. 例如const int months=12將常量months初始化為12, 其值就被固定了, 編譯器將不允許再修改該常量的值. 容易知使用#define months 12也能達到同樣的效果,
但const比#define要好一些. 首先, const能夠明確常量的資料型別; 其次, 可以通過c++的作用域規則將常量限定在特定的函式或者檔案中; 第三, 可以將const用於更複雜的型別, 如陣列和結構, 而#define卻不能這樣使用.
2. 型別轉換. 將0賦給bool變數時, 0將被轉換為false; 而非零值將被轉換成true.
3. 字串. 字串有一天特殊的性質: 以空字元/0結尾, 必須最用用乙個長度來儲存空字元. 例如char a[10], 最多只能存9個用到的字元, 最用乙個空間要用來存空字元. 另一種方法來初始化字串, 可讓編譯器自動新增結尾的空字元. 例如char a[10]="hello", 那麼a[0]~a[4]分別為h,e,l,l,o; a[5]~a[9]全部為空字元/0. 我們要防止出現分配空間不夠的情況, 比如說char b[5]="hello", 沒有用來儲存空字元的空間, 所以這個語句是非法的, 空間不夠. 另外字串常量和字元常不是同乙個概念, 字串常量用雙引號表示乙個字元, 字元常量用單引號, 表示字元的ascii碼. char a="s" 這個語句是非法的, char a='s' 這個語句是合法的.
4. 拼接字串. cout<<"i love "<<"you!" 第乙個字元中結尾的空字元被第二個字元的第乙個字元取代.
5. 輸入字串. char name[10]; cin>>name; 那麼最多輸入9個字元作為name.
6. 面向行的輸入, getline讀取指定數目的字元或遇到換行符時停止讀取, 並丟棄換行符. 例如讀取將姓名讀入到乙個包含20個元素的name陣列中, 那麼函式最多讀取19個字元, 用法為cin.getline(name,20). getline函式可以拼接起來使用cin.getline(name,20).getline(name2,20).
7. 面向行的輸入, get與用法與getline類似, 但是get並不丟棄換行符, 而是將其留在輸入佇列中, 如果兩次連續呼叫get(), 例如cin.get(name,20); cin.get(name2,20); 由於第一次呼叫後, 換行符將留在輸入佇列中, 因此第二次呼叫時看大的第乙個字元便是換行符, 此時get()認為已經達到行尾而終止讀入. get()有另一種變體, 使用不帶任何引數的cin.get()呼叫可讀取下乙個字元(即便是換行符), 可用它來處理換行符. 則可以這樣處理cin.get(name,20); cin.get(); cin.get(name2,20); 當然也可以使用兩個類成員函式(類cin的成員函式)拼接起來使用, 例如cin.get(name,20).get(); cin.get(name2,20);
8. string類, 需要包含#include, string物件和字元陣列之間的主要區別是, 可以將string物件宣告為簡單變數, 而不是陣列. 例如string str1; 建立乙個空的string物件, string str2="father"; 建立乙個字串實體. string物件可以合併, 賦值. 例如string str1, str2, str3; str1="hello"; str2="world"; str3=str1+str2="helloworld";
9. string類的其他操作, 確定字串長度. 已知string物件str1, 則str1的長度可以通過string類的方法size()確定, 那麼str1.size()表示str1的長度. 對於字串陣列, 我們可以通過strlen函式確定, 例如對於字串name1[20], 那麼他內部實際長度(即除去空字元)為strlen(name1). 當然要使用strlen, 最好包含標頭檔案#include或者#include.
10. c++結構體. 類似於c語言的結構體, 但有一點不同, 在定義結構體後, 宣告結構體變數時c語言要求有struct關鍵字, 但是c++可以省略struct關鍵字. 例如定義結構體
struct student
;宣告的時候c語言要求為struct student stu1; 而對於c++而言只需要student stu1就可以了, 這樣也貼近c++的物件導向思想, 就好想新建立了乙個類一樣. 宣告結構體之後, 可以對結構體進行初始化和賦值, 例如 student stu1=; student stu2; 可以令stu2=stu1, 那麼stu2的內容和stu1的內容就一樣了.
11. 結構體陣列. 建立了結構體後, 所建立的結構體就相當於乙個型別了, 這個型別的乙個集合就相當於乙個這個型別的陣列了. 例如還是上面建立的結構體student, 定義乙個結構體陣列student stu[100], 那麼久宣告了100個結構體變數了, 分別是stu[0]~stu[99].
也可以初始化結構體陣列, 例如
student stu2[2]=,
};
資料處理 流資料處理利器
流處理 stream processing 是一種計算機程式設計正規化,其允許給定乙個資料序列 流處理資料來源 一系列資料操作 函式 被應用到流中的每個元素。同時流處理工具可以顯著提高程式設計師的開發效率,允許他們編寫有效 乾淨和簡潔的 流資料處理在我們的日常工作中非常常見,舉個例子,我們在業務開發...
爬蟲 資料處理 pandas資料處理
使用duplicated 函式檢測重複的行,返回元素為布林型別的series物件,每個元素對應一行,如果該行不是第一次出現,則元素為true keep引數 指定保留哪一重複的行資料 dataframe替換操作 使用df.std 函式可以求得dataframe物件每一列的標準差 資料清洗清洗重複值 清...
資料處理 pandas資料處理優化方法小結
資料處理時使用最多的就是pandas庫,pandas在資料處理方面很強大,整合了資料處理和資料視覺化。pandas的視覺化使用的是matplotlib。回到主題 計算資料的某個欄位的所有值,對其欄位所有值進行運算 處理的字段資料為時間戳,需要計算該時間戳距離現在的時間,單位為天。一般方法 使用現在的...