STL_优先队列

一、简介 优先队列容器与队列一样,只能从队尾插入元素,从队首删除元素。但是它有一个特性,就是队列中最大的元素总是位于队首,所以出队时,并非按照先进先出的原则进行,而是将当前队列中最大的元素出队。 元素的比较规则默认按元素值由大到小排序,可以重载“<”操作符来重新定义比较规则。 优先级队列可以用向量( ... »

智能指针

一、简介 **动态内存:**除了静态内存和栈内存,每个程序还拥有一个内存池。这部分内存被称作自由空间(free store)或堆(heap)。程序用堆来存储动态分配(dynamicallyallocate)的对象——即那些在程序运行时分配的对象。动态对象的生存期由程序来控制,也就是说,当动态对象不再 ... »

STL_常用的算法

STL_常用的算法 一、常用的查找算法 adjacent_find() adjacent_find(iterator beg, iterator end, _callback); 在iterator对标识元素范围内,查找一对相邻重复元素,找到则返回指向这对元素的第一个元素的迭代器。 vector<i ... »

STL_map和multimap容器

一、map/multimap的简介 map是标准的关联式容器,一个map是一个键值对序列,即(key,value)对。它提供基于key的快速检索能力。 map中key值是唯一的**。集合中的元素按一定的顺序**排列。元素插入过程是按排序规则插入,所以不能指定插入位置。 map的具体实现采用红黑树变体 ... »

STL_list容器

一、List简介 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相较于vect ... »

STL_queue容器

一、queue简介 queue所有元素的进出都必须符合”先进先出”的条件,只有queue的顶端元素,才有机会被外界取用。queue不提供遍历功能,也不提供迭代器。 queue是简单地装饰deque容器而成为另外的一种容器。 #include <queue> 二、queue对象的默认构造 queue采 ... »

STL_deque容器

一、deque简介 deque是“double-ended queue”的缩写,和vector一样都是STL的容器,deque是双端数组,而vector是单端的。 deque在接口上和vector非常相似,在许多操作的地方可以直接替换。 deque可以随机存取元素(支持索引值直接存取, 用[]操作符 ... »

STL_string容器

一、string概念 string是STL的字符串类型,通常用来表示字符串。而在使用string之前,字符串通常是用char*表示的。string与char*都可以用来表示字符串,那么二者有什么区别。 string和char*的比较: string是一个类, char*是一个指向字符的指针。 ​ s ... »

C++:标准I/O流

标准I/O对象:cin,cout,cerr,clog cout; //全局流对象 输出数据到显示器 cin; //cerr没有缓冲区 clog有缓冲区 cerr; //标准错误 输出数据到显示器 clog; //标准日志 输出数据到显示器 一、标准输入流 cin.get() //一次只能读取一个字符 ... »

C++:I/O流的概念和流类库的结构

一、C++输入输出包含以下三个方面的内容: 对系统指定的标准设备的输入和输出。即从键盘输入数据,输出到显示器屏幕。这种输入输出称为标准的输入输出,简称标准I/O。 以外存磁盘文件为对象进行输入和输出,即从磁盘文件输入数据,数据输出到磁盘文件。以外存文件为对象的输入输出称为文件的输入输出,简称文件I/ ... »

C++ 异常机制(上)

一、概念 异常:存在于运行时的反常行为,这些行为超过了函数的正常的功能范围。 异常处理:处理程序中的错误,异常处理机制为程序中异常检测和异常处理这两部分的协作提供支持。 在C++中,异常处理包括: throw表达式,表示遇到了无法处理的问题 try语句块,处理异常;以关键字try开始,一个或多个ca ... »

类模板

一、简介 类模板和函数模板的定义及使用类似。有时,有两个或多个类,其功能是相同的,仅仅是数据类型不同。 类模板用于实现类所需数据的类型参数化 类模板在表示如数组、表、图等数据结构显得特别重要,这些数据结构的表示和算法不受所包含的数据类型的影响。 二、语法 C++ 中类模板的写法如下: templat ... »