我已经读过,使用std::vector<T>::size_type
比std::size_t
更便携,但size_type
通常是std::size_t
。例如,建议更多这样做:
for (typename std::vector<T>::size_type i = 0; i < vec.size(); ++i)
std::cout << vec[i] << " ";
比这个:
for (std::size_t i = 0; i < vec.size(); ++i)
std::cout << vec[i] << " ";
这似乎很多打字。您不能使用auto
,因为初始化程序将推导为int。类型别名是无用的,因为您在使用它时也可以输入它。实际上节省打字的情况并不多。
我试着这样做:
template<typename T>
struct size_type
{
using type = typename std::vector<T>::size_type;
};
但它最终只是typename size_type<T>::type
,这与打字一样多。
到目前为止,std::size_t
是最短的输入内容。你什么时候需要担心size_type
?