C++中的size_type是怎么一回事?如何使用?

来源:百度知道 编辑:UC知道 时间:2024/05/16 17:20:40
RT
比如说std::string::size_type index;这种定义是什么含义,说的具体点,谢谢了!

是一些容器定义的大小类型
有点类似于内置类型size_t

用法就是 容器名字::size_type

std::string::size_type index

是string 类型中的 size_type 类型 是一种整型 一般用于数组大小 string[std::string::size_type]

size_type通常都是一个内嵌的类型,通常用于泛型编程当中提供语意。

比如说vector定义的size_type的这个typedef.

下面是我写的一个固定大小数组的STL风格包装:
// 一个宏
#if _MSC_VER > 1310
# define dbsize_t std::size_t
# define dbptrdiff_t std::ptrdiff_t
#else
# define dbsize_t size_t
# define dbptrdiff_t ptrdiff_t
#endif

template < typename _Ty, dbsize_t _uSize, class _copy_traits = copy_traits< _Ty > >
class array
{
public:
typedef _Ty VALUE_TYPE;
typedef VALUE_TYPE* POINTER;
typedef VALUE_TYPE& REFERENCE;
typedef const VALUE_TYPE* CONST_POINTER;
typedef const VALUE_TYPE& CONST_REFERENCE;
typedef dbsize_t SIZE_TYPE;