本部分将剩余视频内容整合在一起,因为后面有很多缺失的部分:unordered_container缺失了一部分,forward_list缺失,shared_ptr缺失,type traits缺失。
一、标准库容器结构

其中标红的三个是C++11新增加的容器,其中array和forward_list比较简单,unordered_containers比较重要,可惜缺失了很多内容。
1. array
其实里面只是一个C语言的数组,只是包装成了一个class的样子。下面是TR1版本(C++03)的源代码,简洁易懂:
template<typename _Tp, std::size_t _Nm>
struct array
{
typedef _Tp value_type;
typedef _Tp* pointer;
typedef value_type* iterator;
value_type _M_instance[_Nm ? _Nm : 1];
iterator begin()
{ return iterator(&_M_instance[0]); }
iterator end()
{ return iterator(&_M_instance[_Nm]); }
......
};
注意里面并没有构造函数和析构函数。
与TR1版本不同,GCC4.9array的源码相当复杂,不容易读懂,见视频,这里就不截图了。
2. 容器hashtable
注意这部分并不是新东西,老师也


2218

被折叠的 条评论
为什么被折叠?



