![](/img/trans.png)
[英]C++ vector::size_type: signed vs unsigned; int vs. long
[英]vector<int>::size_type in C++
這個 C++ 語句是什么意思?
vector<int>::size_type x;
而且,這里的作用域運算符::
什么用? 換句話說,我們如何用英語閱讀這個聲明?
例如,對於X::x(){...}
,我們說x()
是class X
的member function
。
size_type
是vector<int>
類型的(靜態)成員類型。 通常,它是std::size_t
的typedef
,它本身通常是unsigned int
或unsigned long long
的typedef
。
我將其讀作“將 x 聲明為適合保存向量大小的類型的變量”。 向量為其長度定義了自己的類型,如果可能的話,使用它總是最干凈的,而不是“猜測”並直接使用int
、 unsigned int
、 long
、 unsigned long
或size_t
等,否則你需要這樣做。
矢量是一個模板
所以用int
模板化的vector
類型有一個名為size_type
的成員typedef
。 x
被定義為該類型的變量。
不同的實現使用不同的類型來表示大小,因此我們不能直接編寫適當的類型並保持與實現無關。 因此,使用庫定義的 size_type 來表示容器大小是一種很好的編程習慣。
- Andrew Koenig 和 Barbara E. Moo 的加速 C++
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.