NOIP学习小站-西安交通大学附属中学航天学校NOIP学习小站

NOIP学习小站
西安交通大学附属中学航天学校

最新发布

STL算法

关系算法

tangyj626阅读(361)赞(24)

一、求最值 1.max/min max/min函数用于求两个对象的最大值/最小值,还可以通过第3个参数指定比较函数。如果两个对象是结构体或者类变量,可以在结构体或类中重载<运算符,这样就可以方便地使用max/min函数来求极值。 2....

STL算法

交换、删除、替换、生成算法

tangyj626阅读(278)赞(18)

一、交换算法 1.swap swap函数用于交换两个变量的值,需要注意的是,这里的变量的类型可以是基本数据类型,也可以是是结构、类、STL容器等。 2.iter_swap iter_swap函数的两个参数是指针(或迭代器),调用函数后两个指...

STL算法

查找相关算法

tangyj626阅读(224)赞(12)

STL中提供了丰富的查找算法函数,使用时要注意一些函数的特殊条件,例如二分查找binary_search就要求查找的区间的元素是有序排列的。同样地,涉及到区间时,一般是左闭右开。 一、计数count、count_if count函数在指定区...

STL算法

排序相关算法

tangyj626阅读(349)赞(16)

STL提供的算法几乎都在algorithm头文件中(还有一些在numeric、functional两个头文件中),在竞赛中合理使用这些函数,可以提高编码的效率,并且执行效率往往比自己写的算法更高效! 使用时要注意这些函数的工作方式,有些函数...

STL容器

特殊容器之二进制有序集bitset

tangyj626阅读(206)赞(11)

C++的bitset是一种类似数组的结构,它的每一个元素只能是0或1,每个元素仅用1bit空间。从整体效果来看,可以简单认为bitset中存放的就是一个无符号二进制整数。 一、bitset的定义和初始化 要使用bitset,首先需要引入头文...

STL容器

关联式容器之映射map与多重映射multimap

tangyj626阅读(412)赞(8)

一、映射简介 map,提供一种“键—值”关系的一对一(键值对)的数据存储能力。这里的一对一关系,其中第一个可以称为关键字,第二个可能称为该关键字的值。其“键”在 map 容器中是唯一,且按一定顺序排列(可以将 set 也看成是一种简单“键—...

STL容器

关联式容器之集合set与多重集合multiset

tangyj626阅读(316)赞(9)

一、集合简介 set,又称集合,实际上就是一组元素的集合,但其中所包含的元素的值是唯一、且按一定顺序排列的。因为其内部是通过非线性的二叉树结构方式来组织(具体是借助红黑树的结构原理实现的),所以在插入的时候比vector快,但查找和末尾添加...

STL容器

容器适配器之队列queue和优先队列priority_queue

tangyj626阅读(297)赞(9)

一、queue简介 前面已经介绍过队列(线性表——队列),队列(queue)是一种典型的FIFO(first in first out,先进先出)线性表结构,STL中有专门的queue容器。其实queue是一种容器适配器,默认情况下内部是基...

STL容器

容器适配器之栈stack

tangyj626阅读(200)赞(9)

一、stack简介 前面已经介绍过栈(线性表——栈),栈(stack)是一种典型的LIFO(last in first out,后进先出)线性表结构,STL中有专门的stack容器。其实stack是一种容器适配器,默认情况下内部是基于deq...

STL容器

顺序性容器之双端队列deque

tangyj626阅读(166)赞(12)

一、deque简介 双端队列deque是一种优化了的、可以高效地对序列两端元素进行添加和删除操作的基本序列容器。它允许较为快速地随机访问,但它不像vector把所有的对象保存在一块连续的内存块,而是采用多个连续的存储块。向deque两端添加...

STL容器

顺序性容器之列表list

tangyj626阅读(267)赞(9)

一、list简介 列表list容器本质就是前面介绍过的双向链表。list是一个线性链表结构,它的数据由若干个节点构成,每一个节点都包括一个信息块(即实际存储的数据)、一个前驱指针和一个后继指针。它无需分配指定的内存大小且可以任意伸缩,这是因...

STL容器

顺序性容器之向量vector

tangyj626阅读(446)赞(10)

一、vector简介 STL容器中的vector是一种顺序性容器。vector和数组相似,但其大小可以不预先指定,并且能自动扩展。vector容器内存储的元素可以像数组元素一样访问和赋值,可以将vector看作是“动态数组”。 在创建一个v...

STL容器

STL与STL容器

tangyj626阅读(210)赞(10)

一、标准模板库STL STL 是“Standard Template Library”的缩写,中文译为“标准模板库”。STL 是 C++ 标准库的一部分,不用单独安装。2011年4月14日,CCF公布了《关于NOI系列赛编程语言使用限制的规...

STL容器

模板类

tangyj626阅读(132)赞(11)

有了前面模板函数的铺垫,我们再来看模板类。对于模板类,大家了解基本用法即可,特别是模板类的使用方法,因为后续介绍的标准模板库STL中的容器都是基于模板类来实现的。 首先我们来看一个普通的类: 类MyList就像一个功能简单的“队列”,可以使...

STL容器

模板函数

tangyj626阅读(254)赞(10)

一、自定义交换函数 我们来看一个特殊的场景,要自定义一个交换函数用来交换两个变量的值(这里不使用C++内置的swap函数)。如果我们要交换两个int变量的值,函数参数使用引用传参的方式,很容易就能写出下面的函数: 当然,这个函数只能交换两个...

STL容器

tangyj626阅读(267)赞(13)

首先,竞赛中并不推荐自定义“类”来解决问题,但是我们要使用本章节介绍的标准模板库(STL),需要了解一些类的基础知识。如果只是简单地使用类,那么类的使用方法和之前介绍的结构体类似。 前面介绍过结构体,我们已经知道了结构体是由一批数据组合而成...