标准C++
文章平均质量分 53
wonderful_ha
这个作者很懒,什么都没留下…
展开
-
Container容器(类模板内容)
<br />头文件:<br /><br />#include <cstddef><br />#include <iostream><br />using namespace std;<br /><br /><br />template<class T,size_t N=10><br />class Array{<br />T data[N];<br />size_t count;<br />public:<br />Array(){count = 0;}<br />void push_back(const原创 2011-01-21 18:55:00 · 727 阅读 · 0 评论 -
STL 中神秘的END
迭代器是STL的重要组成部分,是容器和算法之间的桥梁。但是每次用[first,end) 去遍历容器的时候,都不禁在想,end指向哪去了??一片未定义的区间??真是一个令人困扰的问题。 在一般的书籍上只会谈到“end指向了最后一个元素的下一个位置”,但下一个位置究竟是什么?也是一原创 2011-09-29 16:12:46 · 1024 阅读 · 0 评论 -
map容器特点
map容器为关联式容器,有如下特点:1,其基本单位(节点)为pair类型,就是必须有实值(value)和键值。pair的第一元素为键值(通过.first 或->first访问),第二元素为实值(通过.second 或者->second访问)2,map不容许有相同的键值原创 2011-09-18 16:24:18 · 1037 阅读 · 0 评论 -
set容器
set容器为关联式容器。有性质如下:1,set容器比较特殊,仅有实际值(value),不存着键值(key)2,被放入其中的元素(value)会被自动排序。3,元素值唯一4,可以添加元素值,删除值,但不可以修改(因为set提供的容器为 constant_iterat原创 2011-09-17 21:16:01 · 642 阅读 · 0 评论 -
迭代器的设计要点 《STL源码剖析》读书笔记
Slowing down your step,you will enjoy more ---wonderful 最初 对于迭代器的印象 是 迭代器能够访问容器中的元素,并对容器中的元素进行操作。实际上这也是作为容器使用者角度所看到的。在阅读源码的过程中,越来越感觉到,迭代原创 2011-09-08 14:28:45 · 809 阅读 · 0 评论 -
STL 内存配置器 《STL源码剖析》 读书笔记
Slowing down your step,you will enjoy more.----wonderfulSTL 的设计师对于内存的分配与回收可谓用尽浑身解数,无不怕哪一行语句影响了程序的效率。 一个经常使用容器的程序员或许都不知道内存配置器的存在。因为容器原创 2011-09-07 17:34:32 · 675 阅读 · 0 评论 -
迭代器的型别 《STL 源码剖析》阅读笔记
应用需求:当我们使用迭代器的时候,可能在函数中返回迭代器,所以要求能够在函数声明的时候就要指明函数的返回类型。这里就可能是迭代器的类型 因此我们需要方法获得迭代器的类型。 C++缺陷:由于C++不支持typeof () 不能在运行时原创 2011-09-06 16:28:59 · 848 阅读 · 0 评论 -
STL中 容器 算法 迭代器 之间的关系
最近一直在看侯捷写的《STL源码剖析》小有想法。故此一记1,三者之间联系: 每个容器都有专属的迭代器,而算法通过迭代器对容器中的元素进行操作。2,容器 容器能够通过模版的方法,装下各种类型的节点元素。3,迭代器是一种smart原创 2011-09-06 11:16:19 · 3631 阅读 · 0 评论 -
dynamic_cast
在vc6.0下默认不支持使用动态运行时(RTTI),所以在编译程序前应对工程进行设置:方法如下: 工程→设置→C++→(勾选)允许运行时信息RTTI实例:#include using namespace std;class Base {};class Derived :public Base{};int main(int argc, char* argv[]){ Derived *pd = new Derived; Base *pb = dynamic_cas原创 2011-06-01 11:42:00 · 626 阅读 · 0 评论 -
输入输出流的重定向
<br />例子如下:<br /> <br />#include<iostream>#include<fstream>using namespace std;int _tmain(int argc, _TCHAR* argv[]){ int i,j; cout<<"please input two number"<<endl; cin>>i>>j; cout<<"the sum of two number:"<<endl; cout<<i+j; return 0;原创 2011-06-01 15:26:00 · 1013 阅读 · 0 评论 -
内存泄露知识
<br /><br />所谓的内存泄漏可以理解为内存单元逐渐被无用的数据占用在c c++里可以通过内存单元没有释放引起java里可以通过 未对作废数据内存单元的引用置null引起分配了内存而没有释放,逐渐耗尽内存资源,导致系统崩溃。<br />内存泄露是指程序中间动态分配了内存,但是在程序结束时没有释放这部分内存,从而造成那一部分内存不可用的情况,重起计算机可以解决,但是也有可能再次发生内存泄露,内存泄露和硬件没有关系,它是由软件设计缺陷引起的。<br />内存泄漏可以分为4类:<br />1. 常发性内存原创 2011-03-17 16:53:00 · 628 阅读 · 0 评论 -
内存泄露知识
<br /><br />所谓的内存泄漏可以理解为内存单元逐渐被无用的数据占用在c c++里可以通过内存单元没有释放引起java里可以通过 未对作废数据内存单元的引用置null引起分配了内存而没有释放,逐渐耗尽内存资源,导致系统崩溃。<br />内存泄露是指程序中间动态分配了内存,但是在程序结束时没有释放这部分内存,从而造成那一部分内存不可用的情况,重起计算机可以解决,但是也有可能再次发生内存泄露,内存泄露和硬件没有关系,它是由软件设计缺陷引起的。<br />内存泄漏可以分为4类:<br />1. 常发性内存原创 2011-03-17 16:53:00 · 525 阅读 · 0 评论 -
如何发布dll
最近由于项目需要,写了一个简单的dll,标准C的,不含MFC框架还专门写了个Win32程序来调用dll,没有问题,但是拷贝到别人机器上运行不了。烦啦~找了两天终于找到原因:我是用VS2010编写的标准dll。所以生成release版本时,需要修改项目设置:项目-->C/C++代码生成 ---->选择多线程MT(默认是MD),希望对大家有帮助原创 2012-09-25 18:41:40 · 623 阅读 · 0 评论