C++標准庫類型包括:string,vector和迭代器,其中string是可變長的字符序列,vector存放的是某種給定類型對象的可變長序列,迭代器是string和vector的配套類型,常被用於訪問string中的字符和vector中的元素。
#include<iostream> using std::cout using std::endl int main() { int i=10; while(i>=0){ cout<<i<<endl; i--; } system("pause"); return 0; }
#include <iostream> using std::cout; using std::cin; void print_range(int lo, int hi) { if (lo > hi) print_range(hi, lo); for (int i = lo; i != hi; ++i) cout << i << " "; } int main() { int low = 0, high = 0; cout << "please input two integers:\n"; cin >> low >> high; print_range(low, high); return 0; }
string的初始化
string s1 // 默認初始化,s1是一個空串
string s2(s1) // s2是s1的副本
string s2 = s1 // 等價於s2(s1),s2是s1的副本
string s3("value") // s3是字面值“value"的副本,除了字面值最後的那個空字符外
string s3 = "value" // 等價於s3("value"),s3是字面值”value"的副本
string s4(n, ' c') // 把s4初始化為由連續n個字符c組成的串
使用等號初始化實際上是拷貝初始化,編譯器直接把等號右側的初始值拷貝到新的對象上,想反,不含等號的初始化是直接初始化化
用拷貝初始化對多個值進行初始化時,須創建一個臨時對象用於拷貝
一個類除規定初始化其對象方式外,還需定義在對象上所能執行的操作
有關string對象上的操作如下表:
os<<s
將s寫到輸出流os當中,返回os
is>>s
從is中讀取字符串賦給s,字符串以空白分隔,返回is
getline(is, s)
從is中讀取一行賦給s,返回is
s.empty()
s為空賦返回true,否則返回false
s.size()
返回s中的字符的個數
s[n]
返回s中第n個字符的引用,位置n從0計起
s1+s2
返回s1和s2連接後的結果
s1=s2
用s2的副本代替s1中原來的字符
s1==s2
如果s1和s2中所含的字符完全一樣,則它們相等,返回true
s1!=s2
如果s1和s2中所含的字符不一樣,返回true
<, <=, >, >=
利用字符在字典中的順序進行比較,且對字母的大小寫敏感
讀寫string,輸入cin >> s;執行讀取操作時,string對象會自動忽略開頭的空白(空格符、換行符、制表符等)並從第一個真正的字符開始讀起,直到下一處空白為止。
輸入 cin >> s1 >> s2 >>……;執行讀取多個輸入
讀取數量未知數量的string對象
使用getline讀取一整行,getlin函數的參數是一個輸入流和一個string對象,函數從給定的輸入流讀入內容,直到換行符(包括換行符)為止,然後將所讀內容拷貝到string的對象中去(此時不包含換行符), getline只要一遇到換行符就結束讀取操作並返回結果,當開始輸入的就是換行符,那麼換回的結果就是個空的string。