近来学习STL,看到power函数的实现感觉挺有趣,记录一下。 1. 一般情况下,我自己要实现乘幂函数会这样实现: 这样即使实现,这里的时间复杂度和n有关,时间复杂度为0(n)。 2. 看了stl源码实现是这样: 这里:当n为偶数时,X^n=(X^2)^(2/n),此时看2/n是否还是偶数,如果是则 ...
分类:
其他好文 时间:
2017-07-02 22:16:35
阅读次数:
241
本篇文章开始,进行STL源码剖析的一些知识点,后续系列笔记全是参照《STL源码剖析》进行学习记录的 STL在现在的大部分项目中,实用性已经没有Boost库好了,毕竟STL中仅仅提供了一些容器供编码者实用,Boost库相对而言全面了许多,所以更适合做一些项目的开发。但STL源码中依然有很多我们值得学习 ...
分类:
其他好文 时间:
2017-06-30 17:20:16
阅读次数:
226
教你透彻了解红黑树 作者:July、saturnman 2010年12月29日 作者:July、saturnman 2010年12月29日 本文参考:Google、算法导论、STL源码剖析、计算机程序设计艺术。 推荐阅读: 一、红黑树的介绍 先来看下算法导论对R-B Tree的介绍:红黑树,一种二叉 ...
分类:
其他好文 时间:
2017-06-13 16:46:29
阅读次数:
283
MiniSTL 目前正在完成一个STL,主要想通过该项目锻炼C++编程、模板编程、熟悉STL、锻炼数据结构和算法能力。 项目的目标是实现STL的几大构件+线程安全。项目过程中主要参考SGI STL源码,项目名称为:MiniSTL。 目前已完成空间配置器和迭代器部分,接下来会去实现容器和算法,最后还会 ...
分类:
编程语言 时间:
2017-06-10 19:31:57
阅读次数:
221
ITERATOR template<class InputIterator,class T> InputIterator find(InputIterator first,InputIterator last,const T& value) { while(first != last && *fir ...
分类:
编程语言 时间:
2017-06-09 12:39:48
阅读次数:
157
template <class InputIterator, class ForwardIterator>inline ForwardIterator uninitialized_copy(InputIterator first, InputIterator last,ForwardIterator ...
分类:
编程语言 时间:
2017-06-09 11:08:12
阅读次数:
197
原文地址:http://blog.csdn.net/zcsylj/article/details/7857009 int的大小是4,定义vector<int> vec,vec中有一个元素,sizeof(vec)=20,如果有1000个元素,则sizeof(vec)是多少? 输出结果: 由此可以看出: ...
分类:
编程语言 时间:
2017-06-04 15:36:58
阅读次数:
301
1) algorithm 2) traits 3) iterator 4) list 5) function 6) rbtree 7) bitset 8) priority_queue 9) hashtable 10) deque 11) string ...
分类:
其他好文 时间:
2017-05-26 20:09:50
阅读次数:
185
将以上空间配置器 m_allocator::_m_alloctor应用于程序中,只能有限度搭配PJ STL 和RW STL(两种不同版本STL源码),因为PJ STL未完全遵循STL规格,其所供应的许多容器都需要一个非标准的空间配置器接口allocator::_Charalloc(), 而RW ST ...
分类:
其他好文 时间:
2017-05-02 18:16:37
阅读次数:
168
STL源码初接触 STL = Standard Template Library,直译过来是:标准模板库,是惠普实验室开发的一系列软件的统称。从根本上说,STL是一些“容器”的集合,这些“容器”有list,vector,set,map等,STL也是算法和其他一些组件的集合。这里的“容器”和算法的集合 ...
分类:
编程语言 时间:
2017-04-16 13:58:37
阅读次数:
280