c++ stl 分析
来源:互联网 发布:淘宝优站九块九包邮 编辑:程序博客网 时间:2024/06/07 12:54
这个是讲配置器
#pragma once/*这个是看候捷stl 源码解析 的配置器,以下为对应代码*/#ifndef _JJALLOC_#define _JJALLOC_#include <new>#include <cstddef>#include <cstdlib>#include <climits>#include <iostream>namespace JJ{ template<class T> inline T* _allocate(ptrdiff_t size, T*) { set_new_handler(0); T* tmp = (T*)(::operator new((size_t)(size * sizeof(T)))); if (tmp == 0) { cerr << "out of memory" << endl; exit(1); } return tmp; } template<class T> inline void _deallocate(T* buffer) { ::operator delete(buffer); } template <class T1, class T2> inline void _construct(T1 *p, const T2&value) { new(p) T1(value); } template<class T> inline void _destroy(T* ptr) { ptr->~T(); } template<class T> class allocator { public: allocator(); ~allocator(); typedef T value_type; typedef T* pointer; typedef const T* const_pointer; typedef T& reference; typedef const T& const_reference; typedef size_t size_type; typedef ptrfdiff_t difference_type; template<class U> struct rebind { typedef allocator<U> other; }; pointer allocate(size_type n, const void *hint = 0) { return _allocate((difference_type)n, (pointer)0); } void deallocate(pointer p, size_type n) { _deallocate(p); } void construct(pointer p, const T& value) { _construct(p, value); } void destroy(pointer p) { _destroy(p); } pointer address(reference x) { return (pointer)&x; } const_pointer const_address(const_reference x) { return (const_pointer)&x; } size_type max_size() const { return size_type(UINT_MAX / sizeof(T)); } private: };}#endif
阅读全文
0 0
- STL分析
- C++(12)STL实践与分析之顺序容器
- C++(14)STL分析与实践之容器适配器
- C++(15)STL实践与分析之Map类型
- C++(16)STL实践与分析之初探算法
- C++(17)STL实践与分析之再谈迭代器
- C++STL中String类的分析与运用
- c++STL之顺序容器(vector、deque、list)分析
- 数据结构与算法分析c++:STL中的向量和表
- C++STL
- C++STL
- C++----STL
- C++,stl
- c++STL
- C++STL
- C++/STL
- [C++]STL
- C++STL
- unity中UGUI图片箭头指向鼠标位置
- springmvc之helloworld
- NYOJ 239 月老的难题(最大二分图匹配)
- 论企业信息化之六:业务架构
- Bootstrap组件学习笔记(五)——标签、徽章和巨幕
- c++ stl 分析
- 图像算法
- RxJS常用操作符
- 最大公约数与最小公倍数
- 我的座右铭
- Oracle学习笔记(八) 约束
- day04作业
- 在C语言算法中的前置++与后置++
- JavaEE 获取路径