1. 程式人生 > >本人只是一個自學C++一年左右的菜鳥,如有錯誤,歡迎指教

本人只是一個自學C++一年左右的菜鳥,如有錯誤,歡迎指教

string::size_type 型別

● size() 函式返回的是一個 string::size_type 型別的值, 在具體使用的時候, 通過作用域操作符來表明 size_type 是在類 string 中定義的。

● string::size_type 型別 是一個無符號型別的值, 而且能足夠存放任何string 物件的大小, 所有用於存放string類 的 size 函式返回值的變數, 都應該是 string::size_type 型別 的。

●  允許編譯器通過 auto 或者 decltype 來推斷變數的型別:

auto len = line.size() // len的型別是string::size_type 型別

● 由於 size函式返回的是一個無符號整型數, 注意 : 如果在表示式中混用了帶符號數和無符號數將可能產生意想不到的結果,

假設n是一個具有負值的int, 則表示式 s. zize() < n的判斷結果幾乎肯定是 true, 這是因為負值n 會自動地轉換成一個比較大的無符號值。

建議 : 如果一條表示式中已經有了 size () 函式就不要再使用 int了, 這樣可以避免混用 int 和 unsigned 可能帶來的問題。

字面值 和 String 物件相加

● 因為標準庫允許把字元字面值的字串字面值轉換成 string 物件, 所以在需要string 物件的地方就可以使用這兩種字面值來替代。

● 注意 : 當把 string 物件和字元字面值及字串字面值混在一條語句中使用時, 必須確保每個加法運算子 (+) 的兩側的運算物件至少有一個是 string。