簡體   English   中英

c++ 中的 string.length() reutrn 是什么類型的數據?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM