[英]what type of data does string.length() reutrn in c++?
我是 C++ 的初學者。 今天在 Leetcode 上嘗試解決 139 題,偽代碼如下:
for (string& word: wordDict) {
int i=0;
int word_len = word.length();
cout << i - word.length() << endl;
cout << i - word_len << endl;
}
結果如下:
18446744073709551611
-5
18446744073709551613
-3
如果我沒有在前面聲明word.length()
的類型,為什么 integer 似乎超出范圍?
成員 function 長度的類型是一個無符號 integer 類型,名為size_type
。
由於類型是無符號的,因此表達式
i - word.length()
也有一個無符號值,因為 size_type 類型(通常對應於 size_t 類型)的等級不小於 int 類型的等級。
你可以寫例如
i - ( int )word.length()
使用有符號算術。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.