3.1 命名空間的using聲明
-
形式:using namespace::name;
3.2 標準庫類型string
-
表示可變長的字符序列
- size()的返回值值類型是string::size_type,一個無符號的整數
- string對象和字符字面值及字符串字面值混在一條語句中使用時,必須確保每個加法運算符兩側對象至少一個時string,如:
string s6 = s1 + ", " + “world”;//正確
string s7 = “hello” + “,” +s1; //錯誤 <cctype>
中定義了函數isalnum()、isdigit()…- 對string對象的每個元素做某個操作,如
for (auto &c : s) //基於範圍的for語句 c = toupper(c); //改成大寫
- 使用下標方式迭代:
for(decltype(s.size()) index=0;index!=s.size() &&!isspace(s[index]); ++index) s[index] = toupper(s[index]);
- string 對象上的操作
- 1.初始化對象的方式
- 2.所能執行的操作:函數名調用操作、<<、+等運算符操作
string s;cin>>s1>>s2;
: 會自動忽略開頭的空白(\n \t)while(getline(cin,s));
:遇到換行符結束但不會存到s中,返回流參數
3.2 標準庫類型vector
表示對象的集合,也叫容器,是一個類模板
#include <vector>
using std::vector
- 編譯器根據模板創建類或函數的過程稱爲實例化
- 初始化如:
vector<T> v5{a,b,c,d,...} vector<T> v5={a,b,c,d,..} //注意這裏不是圓括號
3.4 迭代器
- 有效的迭代器或者指向某個元素、或者指向容器中尾元素的下一位置。
- 有迭代器的類型同時擁有返回迭代器的成員,比如都有begin和end成員
- *iter:返回迭代器所指元素的引用
- iter->mem:解引用該元素,(*iter).mem
- …
- 迭代器類型:
vector<int>::iterator it; // it能讀寫vector<int>的元素 string::iterator it; // it能讀寫string對象中的元素 vector<int>::const_iterator it; // it能讀不能寫vector<int>的元素 string::const_iterator it; // it能讀不能寫string對象的元素
未完