【发布时间】:2011-06-18 11:45:31
【问题描述】:
这个 C++ 语句是什么意思?
vector<int>::size_type x;
而且,这里的作用域运算符:: 有什么用?换句话说,我们如何阅读这个英文陈述?
例如,对于X::x(){...},我们说x() 是member function 的class X。
【问题讨论】:
这个 C++ 语句是什么意思?
vector<int>::size_type x;
而且,这里的作用域运算符:: 有什么用?换句话说,我们如何阅读这个英文陈述?
例如,对于X::x(){...},我们说x() 是member function 的class X。
【问题讨论】:
size_type 是vector<int> 类型的(静态)成员类型。通常,typedef 对应于std::size_t,它本身通常是typedef 对应于unsigned int 或unsigned long long。
【讨论】:
unsigned long 用于size_t。
我会将其解读为“将 x 声明为适合保持向量大小的类型的变量”。向量为其长度定义了自己的类型,如果可能的话,使用它总是最干净的,而不是“猜测”并直接使用int、unsigned int、long、unsigned long 或size_t 等否则需要这样做。
【讨论】:
vector<int>吗?我们如何将x 定义为向量为自己定义的size_type?谢谢
vector<std::string>::size_type的情况下,大小不是int吗?当您说 size_type 在这种情况下可能会有所不同时,您的意思是什么?谢谢
declare x as a variable of a type suitable for holding the size of a vector时,我们可以说of a type suitable for holding the size of the largest object in the C++ application吗?谢谢
向量是一个模板
因此,以int 为模板的vector 类型有一个名为size_type 的成员typedef。 x 被定义为该类型的变量。
【讨论】:
不同的实现使用不同的类型来表示大小,所以 我们不能直接编写适当的类型并保持 独立于实现。出于这个原因,这是一个很好的编程 练习使用库定义的 size_type 来表示 容器大小。
- Andrew Koenig 和 Barbara E. Moo 的加速 C++
【讨论】: