關於C 的問題,關於C 的一個問題?

時間 2021-08-30 10:37:16

1樓:

size_type應該是c++為例如string類和許多其他庫型別定義的配套型別,使這些庫型別的使用與機器無關.所以不能單獨用。具體如下

size_type是為string類型別和vector類型別定義的型別,用以儲存任意string物件或vector物件的長度,標準庫型別將size_type定義為unsigned型別 string抽象意義是字串, size()的抽象意義是字串的尺寸, string::size_type抽象意義是尺寸單位型別 string::size_type它在不同的機器上,長度是可以不同的,並非固定的長度。

但只要你使用了這個型別,就使得你的程式適合這個機器。與實際機器匹配。 eg string::

size_type從本質上來說,是一個整型數。關鍵是由於機器的環境,它的長度有可能不同。 例如:

我們在使用 string::find的函式的時候,它返回的型別就是 string::size_type型別。

而當find找不到所要找的字元的時候,它返回的是 npos的值,這個值是與size_type相關的。假如,你是用 string s; int rc = s.find(.....

); 然後判斷,if ( rc == string::npos ) 這樣在不同的機器平臺上表現就不一樣了。如果,你的平臺的string::

size_type的長度正好和int相匹配,那麼這個判斷會僥倖正確。但換成另外的平臺,有可能 string::size_type的型別是64位長度的,那麼判斷就完全不正確了。

所以,正確的應該是: string::size_type rc = s.

find(.....); 這個時候使用 if ( rc == string::npos )就回正確了。

st.size()表示st中的字元數量,字元數量的統計是由 1 開始累計計算的,所以字元數量正好比字串的下標索引數(由 0 開始累計計算)大 1 ,這裡的index != st.

size();的效果等同於index < st.size();

2樓:匿名使用者

因為vector是模板類,要有模板引數。

關於c 的問題,乙個關於c 的問題

random number 函式介紹 見幫助文件,簡單再提一下,random number 返回乙個0 number 1之間的隨機整數,引數number代表 5 10的數就是 int i random 5 5 這樣就是了 random 5 就是隨機0到5,加5就是5到10了 c 實現生成隨機數200...

C 關於陣列的問題,c 的乙個關於陣列的問題

1 主要問題在陣列的動態分配。main 以前 應當寫宣告,不能寫語句。所以把開始的幾句改成 include using namespace std int n1,n2,n3 int data1,data2,data3 改成這樣 再把 main 開始改成 int main n1 n2 n3 100 d...

關於c語言指標的問題,乙個關於c語言指標的問題

二維陣列相當於乙個一維陣列裡面的元素都是一維陣列 二維陣列名也相當於乙個二級指標。一維陣列 a a 0 二維陣列 a a 0 a 0 0 通俗點寫就是a a 0 a 0 a 0 0 因為 a 0 a 0 0 所以a於 a指向同乙個位址 a 0 0 則 a a 0 0 include int main...