string s("Hello World!!!");// punct_cnt has the same type that s.size returns; <br>
decltype(s.size()) punct_cnt = 0;// count the number of punctuation characters in s <br>for (auto c : s) // for every char in s
if (ispunct(c)) // if the character is punctuation <br>
++punct_cnt; // increment the punctuation counter <br>
cout << punct_cnt<< " punctuation characters in " << s << endl;
这是C ++入门5的代码示例。
有人可以向我解释为什么它可以指定0来初始化一个string :: size_t类型的变量,它不是一个整数类型?我在Q&amp; A上找不到类似的问题。谢谢!
答案 0 :(得分:3)
size_t
实际上是整数类型
http://en.cppreference.com/w/cpp/types/size_t
答案 1 :(得分:0)
decltype(s.size())
返回一个类型,在本例中为size_t(unsigned int)。
请参阅:http://www.cplusplus.com/reference/cstring/size_t/