初始c++(13)之关于typename和size_t的讨论

本文探讨了C++中typename的使用,它用于解决编译器区分类的嵌套类型和静态成员的定义不明确问题。同时,文章解释了size_t的作用,它通常作为STL容器如vector的size()返回类型,抽象表示序列对象的元素数量,增强程序的可移植性。
摘要由CSDN通过智能技术生成
typedef  typename std::vector<T>::size_type size_type;
  • c++ premier中多次出现上面的代码,让人看了似曾相识,但是有觉得什么都不是,因为这里包含了好几个知识点,让我来慢慢解答。

1.独立于对象存在的类成员

首先来看这句:

std::vector<T>::size_type

要想知道上面的代码什么意思,当我们看一下STL中vector类是怎么写的就明白啦:

template <class T,class Alloc=alloc>
class vector{
public:
    //...
    typedef size_t size_type;
    //...
};

其实size_type就是size_t(size_t是什么,下面会讲到)。

std::vector<T>::size_type,这种直接用类名加成员的写法,让我想起来了类静态变量,类静态函数的用法。(静态变量,静态函数可以看我关于static的博客)。于是我做了总结;
 

静态数据成员 
静态成员函数 
嵌套类型

上面这三种情况,都可以用类名加成员的写法来用, typedef size_t size_type;这句话就是嵌套类型,std::vector<T>::size_type,这句就是引用,显

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值