2011-01-31 82 views
37

这个C++语句的含义是什么?矢量<int> :: C++中的size_type

vector<int>::size_type x; 

而且,这里的范围操作符::的用法是什么?换句话说,我们如何用英语阅读这份声明?

例如,对于X::x(){...},我们说x()member functionclass X

回答

52

size_type(静态)成员类型的类型vector<int>。通常,它是typedef对于std::size_t,其本身通常是typedef对于unsigned intunsigned long long

+7

这个'通常'有什么例外?也就是说,这很不寻常? – ibrahim5253 2016-07-01 18:31:46

+1

“通常”意味着标准没有指定它,但这是流行的实现选择做的。其实,我知道一个“例外”。 Linux glibc在x86_64平台上为`size_t`使用`unsigned long`。 – proski 2017-06-02 17:03:50

3

载体是模板

所以vector类型与模板int有一个叫做size_type构件typedefx被定义为该类型的变量。

18

我会读它为“声明x为适合于保持矢量大小的类型的变量”。该矢量定义了它自己的长度类型,如果可能的话,使用它总是最干净的,而不是“猜测”,直接使用int,,long,unsigned longsize_t等。