编程相关
文章平均质量分 69
vbanglev
这个人太懒,什么都不留下.
展开
-
STL之list容器(笔记)
容器list,所控制的长度为N的序列是以一个有着N个节点的双向链表来存储的,支持双向迭代器。优势:可以在链表中随意的插入和删除元素或是子链表,所需的仅是改变前后指针。劣势:在定位操作中比如查找和随即存取,时间是线性增加的,而且在存储上每个节点还有前向和后向两个指针。异常:模版类list的另外一个有点是在异常处理方面,对任何容器来说,器成员函数在执行中抛出的异常,使容器本身处于一种一致的原创 2007-02-22 10:20:00 · 1206 阅读 · 0 评论 -
c++&COM...
C++的主要目标是允许程序员建立用户自定义类型,而且可以在原始实现环境之外重复使用,就是我们今天见到的类库,这样虽然重用比较容易但是重新实现却比较难,人家写的贝,而且要编写一个重用性很好的C++类非常的困难.C++库一直都以源代码的形式分发,这样编译好的可执行代码将成为客户应用中不可缺少的,代码的重复引用浪费了程序的空间,所以出现了DLL,但当我们在DLL中发现一个错误时,我们就要面对C++的原创 2007-06-16 12:39:00 · 932 阅读 · 0 评论 -
完成端口学习笔记
“完成端口”模型是迄今为止最为复杂的一种I / O模型。然而,假若一个应用程序同时需要管理为数众多的套接字,那么采用这种模型,往往可以达到最佳的系统性能!但不幸的是,该模型只适用于Windows NT和Windows 2000操作系统。因其设计的复杂性,只有在你的应用程序需要同时管理数百乃至上千个套接字的时候,而且希望随着系统内安装的C P U数量的增多,应用程序的性能也可以线性提升,才应考虑采用原创 2007-03-14 12:57:00 · 1511 阅读 · 0 评论 -
STL之map&multimap容器(笔记)
容器map&multimap控制的长度为N的序列都是以有N个节点的有序二叉树的方式存储的,每个节点中存储一个类型为pair的单个元素;与set不同只有const key这部分猜参与次序比较,而set是整个元素的值一起参加比较; typedef map,allocator>> mycont;构造函数map() 声明一个按pred()排序的空映射;map(pr) 声明一个按函数对象原创 2007-02-28 15:44:00 · 3003 阅读 · 0 评论 -
STL中的remove问题
我将从remove的复习开始这个条款,因为remove是STL中最糊涂的算法。误解remove很容易,驱散所有关于remove行为的疑虑——为什么它这么做,它是怎么做的——是很重要的。这是remove的声明:templateForwardIterator remove(ForwardIterator first, ForwardIterator last, const T&转载 2007-02-22 10:40:00 · 8788 阅读 · 0 评论 -
STL之stack&queue容器(笔记)
模版类stack,它是一个后进现出的容器适配器--即自己不直接维护被控序列的模版类,而是它存储的容器对象来为它实现所有的功能;typedef stack>> mycont;默认的参数中容器是用deque实现的;被包含的容器要满足提供value_type,size_type,empt,size,push_back,pop_back;可选择的容器有list,deque,vector;要求有最快原创 2007-02-28 20:00:00 · 1688 阅读 · 0 评论 -
STL之set&multiset容器(笔记)
这两个容器控制的长度为N的序列是有N节点的红黑树存储的;集合中所有元素都是独一无二的,多重集合中允许存在副本。模版类set multiset map multimap被称为关联容器,他们都把一个键值于一个元素对应起来,并用该键来查找,插入,删除等操作,他们对插入删除操作取得了比线型时间更好的对数时间效果,当元素增多时他们内部使用的是二分查找,效率更加高效;但如果我们不需要这种额外的效率,就可以原创 2007-02-27 20:03:00 · 2998 阅读 · 0 评论 -
了解STL中相等和等价的区别
STL充满了比较对象是否有同样的值。比如,当你用find来定位区间中第一个有特定值的对象的位置,find必须可以比较两个对象,看看一个的值是否与另一个相等。同样,当你尝试向set中插入一个新元素时,set::insert必须可以判断那个元素的值是否已经在set中了。find算法和set的insert成员函数是很多必须判断两个值是否相同的函数的代表。但它们以不同的方式完成,find对“相同”的定原创 2007-02-27 20:25:00 · 4025 阅读 · 0 评论 -
STL之deque容器(笔记)
deque容器所控制的长度为N 的序列是以统一的长度为B的块组成的,也就是说他跟向量一样支持常量时间内存取任意元素,他与vector是唯一可以随机存取的容器。比vector好的地方是它可以在容器的头部以常量的时间插入或删除元素,因为它的有效元素是从一个偏移量OFF开始的。但通常下每个元素多一个指针的存储空间,虽然可以任意存取元素,但它需要的时间是线性的,向量是常量它可以像列表一样实现先原创 2007-02-26 11:54:00 · 2852 阅读 · 0 评论 -
STL之vector容器(补充)
标准模版类也定义了一个模版类basic_string,basic_string得一个模版参数是元素类型。他们之间得不同之处:basic_string得构造函数和析构函数只能在C程序中声明得类型,可以通过逐位复制得方式来位这样得对象赋值。vector则可以在其中包含任意类型。basic_string参数中需要一个traits类来为它得另一个模版参数,traits指定了如何移动或是比较序列中得原创 2007-02-14 16:57:00 · 2336 阅读 · 0 评论 -
C++精华(STL)学习笔记之算法
是STL中最大得一个文件,它是由一大堆模版函数组成得。这些函数包括:max 检测两个元素得较大值min 检测两个元素得较小值swap 交换两个已储存得值iter_swap 交换两个由迭代器描述得值max_element 检测一个序列中较大得值min_element 检测一个序列中较小得值equal 比较两个序列是否相等lexicographical_compare原创 2007-02-10 18:41:00 · 2061 阅读 · 1 评论 -
C++精华(STL)学习笔记之迭代器
utility中只有模版类pair,和一些与之相关联得模版操作符,该模版类用来将两个对象合并为一个对象,当你想要一个函数返回两个值得时就比较方便了。其中模版函数make_pair可以在必要时产生一个pair对象,该函数在检测参数时忽略掉所有CONST属性,所以不能依赖他产生包含一个或多个常量成员对象得pair对象。测试文件: #include "iostream"#include "a原创 2007-02-10 13:29:00 · 3260 阅读 · 0 评论