NoFear
随笔 - 48, 文章 - 0, 评论 - 6, 阅读 - 58938

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

09 2012 档案

摘要:1 迭代器简单概念迭代器:一个能遍历容器所有元素的智能指针2 迭代器设计理念STL的中心思想是:容器和算法分开(通过C++的class templates和function templates),彼此独立设计,最后用迭代器把他们粘合起来。3 简单模拟代码【参考STL源码解析83页,可以编译通过】//File:mylist.h 一个模板链表#include <iostream>using namespace std;template <typename T>class ListNode{public: ListNode(T value,ListNode* next = N 阅读全文

posted @ 2012-09-14 10:32 Fear_Hao 阅读(509) 评论(2) 推荐(0) 编辑

摘要:一般而言,我们习惯C++内存申请操作和释放操作如下:class Foo{};Foo * pf = new Foo; //1.申请空间2.调用构造函数delete pf; //1.析构函数2.释放空间但是为了精确分工,STL Allocator这两个阶段分开来。PS:以下代码不讨论多线程情况内存申请:alloc::allocate()负责。内存释放:alloc::deallocate()负责。对象构造:全局 ::construct()负责。对象析构:全局 ::destroy()负责。1.<stl_construct.h> 对象构造和析构关键代码【::construct()和::de. 阅读全文

posted @ 2012-09-10 12:59 Fear_Hao 阅读(1753) 评论(0) 推荐(1) 编辑

摘要:平衡二叉树定义(AVL):它或者是一颗空树,或者具有以下性质的二叉树:它的左子树和右子树的深度之差的绝对值不超过1,且它的左子树和右子树都是一颗平衡二叉树。最小不平衡子树:指离插入节点最近且以平衡因子的绝对值大于1的节点作为根的子树。平衡因子(bf):结点的左子树的深度减去右子树的深度,那么显然-1<=bf<=1; 很显然,平衡二叉树是在二叉排序树(BST)上引入的,就是为了解决二叉排序树的不平衡性导致时间复杂度大大下降,那么AVL就保持住了(BST)的最好时间复杂度O(logn),所以每次的插入和删除都要确保二叉树的平衡,那么怎么保持平衡呢?插入操作 在平衡二叉树中插入结点与二叉 阅读全文

posted @ 2012-09-03 10:44 Fear_Hao 阅读(30707) 评论(4) 推荐(4) 编辑

点击右上角即可分享
微信分享提示