文章分类 - 数据结构与算法
摘要:容器算法迭代器初识: 了解STL中容器、算法、迭代器概念后,我们利用代码感受STL的魅力 STL中最常见的容器为Vector,可以理解为数组,下面我们将学习如何向这个容器中插入数据,遍历这个容器 vector存放内置数据类型 容器:vector 算法:for_each 迭代器:vector::ite
阅读全文
摘要:stack容器 3.5.1stack基本概念 概念:stack是一种先进后出的数据结构,他只有一个出口 栈底: 栈顶: 入栈:push 出栈:pop 栈中只有顶端的元素才可以被外界使用·,因此栈不允许有遍历行为 生活中的栈: stack常用接口 功能描述:栈容器常用的对外接口 构造函数: stack
阅读全文
摘要:C++STL——vector容器和大小操作 功能描述: 对vector容器和大小操作 函数原型: empty(); //判断容器是否为空 capacity();//容器的容量 size(); //返回容器指定长度为num,若容器变长,则以默认值填充新位置。 //如果容器变短,则末尾超出容器长度的元素
阅读全文
摘要:STLset容器大小和交换 功能描述: 统计set容器大小以及交换set容器 函数原型: size(); //返回容器中元素的数目 empty(); //判断容器是否为空 swap(st); //交换两个集合容器 代码示例: #include<iostream> #include<set> usin
阅读全文
摘要:C++stllist大小操作 功能描述: 对list容器的大小进行操作 函数原型: size(); //返回容器中元素的个数 empty(); //判断容器是否为空 resize(num); //重新指定容器的长度为num,若容器变长,则以默认填充新位置 //如果容器变短,则末尾超出容器长度的元素被
阅读全文
摘要:C++STLlist容器插入和删除 功能描述: 对list容器进行数据的插入和删除 函数原型: push_back(elem); //在容器尾部加入一个元素 pop_back(); //删除容器最后一个元素 push_fron(elem); //在容器开头插入一个元素 pop_front(); //
阅读全文
摘要:C++STL排序案例 案例描述:将Person自定义数据类型进行排序,Person中属性有姓名、年龄、身高 排序规则:按照年龄进行升序,如果年龄相同按照身高进行降序 代码示例: #include<iostream> #include<list> #include<string> using name
阅读全文
摘要:C++STL常用查找算法 学习目标: 掌握常用的查找算法 算法简介: find //查找元素 find_if //按条件查找元素 adjacent_find //查找相邻重复元素 bitary_search //二分查找法 count //统计元素个数 count_if //按条件统计元素个数 fi
阅读全文
摘要:C++STLmap容器排序 学习目标: map容器默认排序规则为按照key值进行从小到大排序,掌握如何改变排序规则 主要技术点: 利用仿函数,可以改变排序规则 代码示例: #include<iostream> #include<map> using namespace std; //map容器排序
阅读全文
摘要:STL常用算法 概述: 算法主要是由头文件组成 是所有STL头文件中最大的一个,范围涉及到比较、交换、查找、遍历操作、复制、修改等等 体积很小,只包含几个在序列上面进行简单数学运算的模板函数 定义了一些模板类,用以声明函数对象 常用遍历算法 学习目标: 掌握常用的遍历算法 算法简介: for_eac
阅读全文
摘要:谓词概念 概念: 返回bool类型的仿函数称为谓词 如果operator()接受一个参数,那么叫做一元谓词 如果operator()接受两个参数,那么叫做二元谓词 一元谓词 代码示例: #include<iostream> #include<vector> #include<algorithm> u
阅读全文
摘要:STLmap容器插入和删除功能描述: * map容器进行插入和删除数据 函数原型: insert(elem); //在容器中插入元素 clear(); //清除所有元素 erase(pos); //删除pos迭代器所指的元素,返回下一个元素的迭代器 erase(beg, end); //删除区间[b
阅读全文
摘要:冒泡排序 作用:最常用的排序算法,对数组内元素进行排序 1.比较相邻的元素。如果左边比第右边的大,就交换他们两个。大的右边,小的要排左边。 2.对每一对相邻元素做同样的动作,执行完毕后,找到第一个最大值。 3.重复以上步骤,每次比较次数-1,直到不需要比较。 列:对以下数组进行升序排列。 代码实现:
阅读全文
摘要:vector容器概念 3.2.1功能: vector数据结构和数组非常相似,也称为单端数组 vector与普通数组区别 不同之处在于数组是静态空间,而vector可以动态扩展 动态扩展: 并不是在原空间之后续接新空间,而是找更大的内存空间,然后将原数据拷贝新空间,释放原空间 vector构造函数 功
阅读全文
摘要:STL的诞生 * 长久以来,软件界一直希望建立一种可重复利用的东西 C++的面向对象和泛型编程思想,目的就是复用性的提升 大多情况下,数据结构和算法都未能有一套标准,导致被迫从事大量重复工作 为了建立数据结构和算法的踢一套标准,诞生了STL STL基本概念 * STL(Standard Templa
阅读全文
摘要:C++STLset基本概念 * 所有元素都会在插入时自动被排序 本质: set/multiset属于关联式容器,底层结构是用二叉树实现的。 set和multiset区别: set不允许容器中有重复的元素 multiset允许容器中有重复的元素 set构造和赋值 功能描述:创建set容器以及赋值 构造
阅读全文
摘要:C++STLlist容器数据存取 功能描述: 对list容器中数据进行存取 函数原型: front(); //返回第一个元素 back(); //返回最后一个元素 代码示例: #include<iostream> #include<list> using namespace std; void te
阅读全文
摘要:C++STLlist容器的概念以及用法 list基本概念 功能:将数据进行链式存储 链表(list)是一种物理存储单元上非连续性的储存结构,数据元素的逻辑顺序是通过链表中的指针链接实现的 链表的组成: 链表由一系列节点组成 节点的组成: 一个是存储数据元素的数据域,另一个是存储下一个节点地址的指针域
阅读全文
摘要:deque容器基本概念 功能: * 双端数组,可以对头端进行插入删除操作 deque与vector区别: * vector对于头部的插入删除效率低,数据量越大,效率越低 * deque相对而言,对头部的插入删除速度会比vector快 * vector访问元素时的速度会比deque快,这和两者内部实现
阅读全文
摘要:C++STLmap查找和统计 功能描述: * 对map容器进行查找数据以及统计数据 函数原型: find(key); //查找key是否存在,若还在,返回改键的元素的迭代器,若不存在set.end(); count(key); //统计key的元素个数 代码示例: #include<iostream
阅读全文

浙公网安备 33010602011771号