06 2021 档案

摘要:概念: 算法主要由头文件 <algorithm> <functional> <numeric>组成 <algorithm>是所有STL头文件中最大的一个,范围涉及到比较/交换/查找/遍历/赋值/修改等 <numeric>体积很小,只包括几个在序列上面进行简单数学运算的模板函数 <functional 阅读全文
posted @ 2021-06-23 21:47 白米a 阅读(60) 评论(0) 推荐(0)
摘要:4.2.1谓词概念 概念: 返回bool类型的仿函数称为谓词 如果operator()接受一个参数,那么叫做一元谓词 如果operator()接受二个参数,那么叫做二元谓词 4.3.1内疚函数对象意义 概念:STL内建了一些函数对象 分类:算术仿函数 逻辑仿函数 关系仿函数 用法: 这些仿函数所产生 阅读全文
posted @ 2021-06-23 17:04 白米a 阅读(49) 评论(0) 推荐(0)
摘要:4.1函数对象 4.1.1函数对象概念 概念: 重载函数调用操作符,其对象常称为函数对象 函数对象使用重载的()时,行为类似函数调用,也叫仿函数 本质: 函数对象(仿函数)是一个类,不是一个函数 4.1.2 函数对象使用 特点: 函数对象在使用时,可以像普通函数那样调用,可以有参数,可以有返回值 函 阅读全文
posted @ 2021-06-23 16:29 白米a 阅读(38) 评论(0) 推荐(0)
摘要:3.9.1 map基本概念 简介: map中所有元素都是pair pair中第一个元素为key(键值),起索引作用,第二个元素为value(实值) 所有元素都会根据元素的键值排序 本质:map/multimap属于关联式容器,底层结构是用二叉树实现 优点:可以根据key值快速查找value值 map 阅读全文
posted @ 2021-06-22 16:05 白米a 阅读(59) 评论(0) 推荐(0)
摘要:3.8.1 set基本概念 简介:所有元素都会在插入时自动被排序 本质:set/multiset属于关联式容器,底层结构是用二叉树实现。 set与multiset区别: set不允许容器中有重复元素 multset允许容器由重复元素 3.8.2 set构造和赋值 函数原型: set<T> st;// 阅读全文
posted @ 2021-06-22 15:48 白米a 阅读(45) 评论(0) 推荐(0)
摘要:3.5.1 stack基本概念(栈) 概念:stack是一种先进后出的数据结构,它只有一个出口 栈中只有顶端元素才可以被外界使用,因此栈不允许有遍历行为 入栈 push 出栈 pop 3.6queue容器 3.6.1queue容器 概念:queue是一种先进先出的数据结构,他有两个出口 队列容器允许 阅读全文
posted @ 2021-06-22 09:23 白米a 阅读(58) 评论(0) 推荐(0)
摘要:3.3.1deque容器基本概念 功能: 双端数组,可以对头端进行插入删除操作 deque与vector的区别: 1.vector对于头部的插入删除效率低,数据量越大,效率越低 2.deque相对而言,对头部的插入删除速度会比vector快 3.vector访问元素的速度会比deque快,这和两者内 阅读全文
posted @ 2021-06-21 21:35 白米a 阅读(42) 评论(0) 推荐(0)
摘要:一.const修饰指针 const修饰指针有三种情况: 1.const修饰指针 常量指针 const int * p=&a const使得 *p不能改变 指针的指向可以修改 指针指向的值不可修改 2.const修饰常量 指针常量 int * const p=&a const使得 p不能改变 指针的指 阅读全文
posted @ 2021-06-20 22:15 白米a 阅读(651) 评论(0) 推荐(0)
摘要:3.2vector容器 3.2.1vector基本概念 功能:1.vector数据结构和数组非常相似,也称为单端数组 vector与普通数组区别: 不同之处在于数组是静态空间,而vector可以动态扩展 动态扩展: 并不是在原空间之后续接新空间,而是找更大的内存空间,然后将元数据拷贝新空间,释放原空 阅读全文
posted @ 2021-06-20 20:59 白米a 阅读(37) 评论(0) 推荐(0)
摘要:了解STL中容器、算法、迭代器概念后,我们利用代码感受STL的魅力 STL中最常用的容器就是Vector,我们可以理解为数组,下面我们将学习如何向这个容器中插入数据、并遍历这个容器 2.5.1 vector存放内置数据类型 容器 vector 算法 for_each 迭代器 vector<int>: 阅读全文
posted @ 2021-06-16 08:56 白米a 阅读(43) 评论(0) 推荐(0)
摘要:2.1 STL的诞生 1.长久以来,软件界一直希望建立一种可重复利用的东西 2.c++的面向对象(封装、继承、多态)和泛型编程思想,目的就是复用性的提升 3.大多数情况下,数据结构和算法未能有一套标准,导致被迫从事大量重复工作 4.为了建立数据结构和算法的一套标准,诞生了STL 2.2 STL基本概 阅读全文
posted @ 2021-06-16 08:35 白米a 阅读(46) 评论(0) 推荐(0)
摘要:泛型编程和STL技术 1、模板 1.1模板的概念 模板就是建立通用的模具,大大提高复用性 模板不能直接使用,只是一个框架,也不是万能的 1.2函数模板 函数模板作用: 建立通用函数,其函数返回类型和形参类型可以不具体指定,用虚拟的类型来代表 语法: template <typename T> 函数声 阅读全文
posted @ 2021-06-11 00:39 白米a 阅读(38) 评论(0) 推荐(0)