C++自修入門實境秀、C++ Primer 5版研讀秀 13/ ~頁86 Reading and Writing string s-20190...
1:56:40 頁39 字元與字元字串字面值
頁81 第3章 0:44 6:00迭代器 iterator
8:20 字元 字符
13:00原來 string 、vector 都是:
abstractions of the more primitive built-in array type.
程式庫所定義的string和vector型別是更原始的內建陣列型別之抽象層(abstractions)。31:00
20:30 nature機能、性質、性能
30:40 array較低階,而string vector則是較高階的抽象層 32:10低階語言就是比較不靈活。科學語言即類似低階語言,而文學語言即類似高階語言。
39:40另一種using簡化引用的方法 using宣告、using declaration
頁82 19:00
「字元」character 就是包括「字母+符號」所以「字元」 =「字符」
3.1. Namespace using Declarations
34:50
A Separate using Declaration Is Required for Each Name
51:00
每個名稱都需要ー個分別的using宣告 52:40
每個名稱都需要一個自己的using declaration
57:28 best practices 最佳練習、最好習慣1:1:20
頁83
Headers Should Not Include using Declarations
1:1:55
1:5:45
#include其實就是把標頭檔的內容複製到本身程式碼所在的部分
1:10:00
From this point on, our examples will assume that using declarations have been made for the names we use from the standard library. Thus, we will refer to cin , not std::cin , in the text and in code examples.
point 七星大法 空間→時間
練習3.1
1:17:40
頁84
3.2. Library string Type
字串(string)是一個可變長度的字元序列
1:31:00一個類別class對它的物件對象object的初始化可以有多重的定義
1:33:20表3.1 1:50:00
1:39:00
#include <iostream>
#include<string>
//using namespace std;
using std::string; using std::cout; using std::endl;
int main() {
string s4(6,'a');
cout << s4 << endl;
return 0;
}
頁85
1:44:30 2:41:50
表3.1 可參考頁43 串列初始化(list initialization)
2:42:17可變長度字串之義
2:42:28 字元char型別值加在單引號中,且不能超出4個字母長度。
We can default initialize a string (§ 2.2.1 , p. 44 ), which creates an empty string ; that is, a string with no characters. When
原來空字串就是沒有含任何字元的字串
2:2:05
Direct and Copy Forms of Initialization
初始化的直接和拷貝形式
2:1:30 2:6:00 是謂初始化有二種基本形式,一種是直接的,一種是複製的
用「=」這個符號的,就是複製型的初始化(to copy initialize)
省略了「=」,就是direct initialization .直接式的了2:9:10
可見,沒有「=」,就是「直接」(direct)的意思所在。⑧找對主詞 直接,什麼東西直接啊?就是不要透過「=」這個白手套的直接嚕
2:16:10在Chrome瀏覽器中自訂快捷鍵2:30:50 複製頁籤分頁 duplicate tab
2:31:50關閉其他分頁 close other tabs
2:34:45 設定好後要重新整理reload、refresh或重啟後才生效2:39:28
2:37:40在115瀏覽器中設定鍵盤快捷鍵 2:37:50須啟用開發者模式
頁85
又可以藉由間接的方式來用複製型的初始伥
string s8 = string (10, 'c' ) ; // copy initialization,s8 是 cccccccccc
string temp (10, 'c' ) ; // temp 是 cccccccccc
string s8 = temp; // 拷貝 temp 到s8
2:49:40 offers no compensating advantage over the way we initialized s7.
2:50:40 成員函式(在類別中的函式。成員,類別內的成員)
2:55:10 英文版原書C++ Primer 5th edition
3.2.2. Operations on string s
Reading and Writing string s
2:59:05 getline(is,s) 常見的string運算
頁86 3:2:20 3:6:30
表3.2
os<< s 將s寫到輸出資料流os。回傳os。
is >> s 從is讀取以空格分隔的字串到s。回傳is。
getline(is, s) 從is讀取一行輸入到s。回傳is。
s.empty () 如果s是空的就回傳true,否則回傳false。 判斷是否為空字串
s.size () 回傳s中的字元數。2:59:50
s[n] 回傳s中位在位置n的char之參考,位置從0開始。3:10:20這個「參考」不是參考型別(reference &)的參考,而是一般用法。此式傳回值一樣是char型別,不是參考型別(即對char型別的參考)3:14:15
Retruns a reference to the char at position n in s;positions start at0.
s1 + s2 回傳s1和s2串接(concatenation)所成的字串。3:4:25
可見「s」string;「o」out;「i」in;「+」即連字串。
留言