摘要:
第一章:引子 STL包含的算法头文件有三个:,其中最大最常用的是,今天学习的是包含的算法中的第一部分:非修改顺序操作算法。 接下来学习的算法基于C++11标准,较老的IDE会支持不全面或者部分算法不支持。 第二章:原型解析 如分类名称体现的信息,本节的所有函数都不会修改序列,并且原理上都是顺序遍... 阅读全文
摘要:
第一节:vector简介 vector是一种典型的类模板,使用的时候必须进行实例化。 vector的数据存储在数组上,支持随机访问迭代器,支持下标操作[]和at操作,支持手动扩容和自动容量增长。 vector是STL中的最常用容器,并支持STL的通用算法。第二节:vector的迭代器介绍 vecto... 阅读全文
摘要:
起:C++98标准加入auto_ptr,即智能指针,C++11加入shared_ptr和weak_ptr两种智能指针,先从auto_ptr的定义学习一下auto_ptr的用法。template class auto_ptr { // wrap an object pointer to ensure... 阅读全文
摘要:
第一章:抛砖引玉 字典树是一种基于链表的数据结构,以统计词频并返回用户最想输入的词汇为例,分享一下字典树的应用心得。 刚建立的用户词库,用户输入两次“hilili”,输入一次“hilucy”,此时用户再次输入“hi”,我们应该联想到用户可能要输入的单词是“hilili”,以下为统计示例图。 字典... 阅读全文
摘要:
这篇博客的目的是让尚未学会hash表的朋友们对hash表有一个直观的理解,并且能根据本文定义出属于自己的第一个hash表,但算不上研究文,没有深究概念和成功案例。 什么是hash表? hash表也叫做散列表,是一种通过键值快速访问数据的结构,hash表有两种常见的定义形式:数组、数组和链... 阅读全文
摘要:
第一章:源起 遇到一个问题,如果一个客户数据文件有2g大,客户要通过界面查询文件中的数据并用列表控件显示数据,要怎么处理这个文件才能让应用程序不会长时间无响应,客户感觉不到程序的卡顿? 第二章:解决之道 第一反应是用内存映射文件处理大文件,将文件分成数次映射至内存地址空间,避免... 阅读全文
摘要:
前面博客讲了互斥量(MUTEX)和关键段(CRITICAL SECTION)的使用,想来总觉不妥,就如盲人摸象一般,窥其一脚而言象,难免以偏概全,追加一篇博客查遗补漏。 win32下的线程同步技术分为用户模式下的线程同步和用内核对象进行线程同步两大类。用户模式下的线程同步和用内核对象进行线程同步有... 阅读全文
摘要:
应用多线程互斥锁之前首先简单过一下C程序可能用到的3个创建线程函数: CreateThread,windows系统提供的唯一创建线程API,_beginthread和_beginthreadex都在内部调用了CreateThread,直接调用该函数创建多线程的C程序存在内存泄露的可能性,通常不推荐... 阅读全文
摘要:
但凡成为大家公认的模式,都是有一些不可小觑的威力,今天分享一个简单的设计模式:单例模式。 单例模式用于一些只希望有一个实例的类或者只希望执行一次的操作:校长只能有一个、老板只能有一个、用户点击弹窗只希望弹出一次。用全局变量等方式也可以实现,但是多了很多判断和处理代码,并且职责模糊,类的唯一实例化是... 阅读全文
摘要:
看大话设计模式中大牛对小菜的精辟点评,也写了一个计算器程序,并跟着点评一路改良,还是不过瘾,应用了类模板和异常捕捉机制重写了程序。 本文不能算干货,恰当的比方是饭前甜点,吃一口有点味、有点意思,总归太小不管饱。 #include #include #include #include #includ... 阅读全文