
VS 2010 STL
李小乾
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
VS2010 std::string 源码分析
分配内存原理分配内存原理union _Bxty{ // storage for small buffer or pointer to larger one _Elem _Buf[_BUF_SIZE]; _Elem *_Ptr; char _Alias[_BUF_SIZE]; // to permit aliasing} _Bx;这个_Bxty是一个union。当分配字符串所需内...原创 2019-08-04 10:59:43 · 1370 阅读 · 1 评论 -
VS 2010 STL stack与queue源码分析
stack是栈,先进后出,只能一头操作;queue是队列,先进先出,一头进,另一头出。VS里的stack与queue底层都是使用双端队列deque实现的。通过改变deque的行为而生成不同的容器,这就做容器适配器。stack // TEMPLATE CLASS stacktemplate<class _Ty, class _Container = deque<_Ty&g...原创 2019-08-18 21:35:44 · 241 阅读 · 0 评论 -
VS 2010 STL deque源码分析
定义deque 即双端队列,与vector相比,此容器多出了pop_front()和push_front()这两个操作,即在首部的增删操作;而与list相比,deque多出了对容器元素的随机访问功能。写在文章之前网上也有很多关于deque源码分析的文章,不过大部分都是继承自侯捷《STL源码分析》中关于deque源码的讲解。鲜有VS版本 STL deque源码的讲解,现在就来看看VS版本...原创 2019-08-18 17:49:10 · 402 阅读 · 0 评论 -
VS 2010 STL 内存分配器
Alloc是分配内存之意,Construct是在内存里构造之意。就好C++里的new有分配内存,在分配的内存里构造我们的对象这两层作用。其实这也就是分配器的作用。替换new与delete。// TEMPLATE FUNCTION _Allocatetemplate<class _Ty> inline _Ty _FARQ *_Allocate(_SIZT _Count, _T...原创 2019-08-10 00:06:28 · 590 阅读 · 0 评论 -
VS 2010 STL vector源码分析
类结构框架vector继承于_Vector_val,继承于_Container_base,_Container_base在debug模式下(只探索debug模式)就是如此定义:typedef _Container_base12 _Container_base;这里面最重要的就是定义了一个叫做“容器代理”的成员变量_Container_proxy *_Myproxy;这个“代理”,就是在cont...原创 2019-08-11 17:18:53 · 1578 阅读 · 0 评论 -
VS 2010 STL list源码分析
类结构框架(debug模式) // TEMPLATE CLASS _List_nodtemplate<class _Ty, class _Alloc> class _List_nod : public _Container_base//即为_Container_base12 { // base class for _List_val to hold storage...原创 2019-08-11 22:16:09 · 476 阅读 · 0 评论 -
VS 2010 auto_ptr
定义下面这段描述来自http://www.cplusplus.com/reference/memory/auto_ptr/Note:This class template is deprecated as of C++11.unique_ptris a new facility with a similar functionality, but with improved secu...原创 2019-08-11 23:29:51 · 332 阅读 · 0 评论 -
VS 2010 algorithm 常见函数及技巧
1、find(_Unchecked与_Rechecked)这个函数的作用就是在一个容器的一段迭代器范围之内查找第一个与_Val相等的迭代器。这个函数有两个模板参数,一是容器迭代器类型_InIt,二是进行比较的值得类型_Ty。下面这一段代码返回的就是一个指向vecInt中第二个元素的迭代器。 vector<int> vecInt; vecInt.push_back(1); ...原创 2019-09-19 11:09:06 · 842 阅读 · 0 评论