开发者

vector<int>::size_type in C++

开发者 https://www.devze.com 2023-02-07 11:17 出处:网络
What is meant by 开发者_StackOverflow中文版this C++ statement? vector<int>::size_type x; And, what is the use of the scope operator :: here? In other words, how do we read this statement in E

What is meant by 开发者_StackOverflow中文版this C++ statement?

vector<int>::size_type x;

And, what is the use of the scope operator :: here? In other words, how do we read this statement in English?

For example, for X::x(){...}, we say that x() is a member function of class X.


size_type is a (static) member type of the type vector<int>. Usually, it is a typedef for std::size_t, which itself is usually a typedef for unsigned int or unsigned long long.


I would read it as "declare x as a variable of a type suitable for holding the size of a vector". The vector defines its own type for its length, and it's always cleanest to use that if possible, rather than "guessing" and using int, unsigned int, long, unsigned long or size_t etc directly as you'd otherwise need to do.


vector is a template

so the vector type templated with int has a member typedef called size_type. x is defined as a variable of that type.


Different implementations use different types to represent sizes, so we cannot write the appropriate type directly and remain implementation-independent. For that reason, it is good programming practice to use the size_type that the library defines to represent container sizes.

- Accelerated C++ by Andrew Koenig and Barbara E. Moo

0

精彩评论

暂无评论...
验证码 换一张
取 消