typedef的有些用法搞不明白,请指教
我在《c++程序设计语言》里P393例看见下面的几行代码
template <class T,class A=alloctor <T> > class std::vector{
public:
typedef T value_type;
typedef A allocator_type;
typedef typename A::size_type size_type; //***** 1
typedef typename A::difference_type diference_type;
typedef implementation_dependent1 iterator;//****** 2
typedef implementation_dependent2 const_iterator;
typedef stdreverse_iterator <iterator> reverse_iterator;//***** 3
}
在1中 typename A::size_type 是什么意思?去掉typename,写成
typedef A::size_type size_type行不行?
在2中 implementation_dependent1 是什么意思?
在3中 stdreverse_iterator <iterator> 又是什么意思?
另外size_t在那个头文件里定义的?我在网上查了一下,据说是这样定义的
typedef unsigned int size_t;我想看看确切的定义
[解决办法]
1. 不行, 编译器无法知道 A::size_type 是个类型还是个变量。
2. 伪代码,意思是和具体实现相关。
3. 反向迭代器。
4. 在 stddef.h 里定义