ba211ecd285c30f4d5a37ce98f3feef024113be4c2599c284ca11af845fb48550e1b605f60b08241bead9bbdd9e6091cbe4daf19059bc4dec82b9d3603e07aad53596b42199afb9dc1a551f07d5b00e3ce361f4eb0b173dd83d7a8480c4176bcf8293ae6906f6df6d6644315609f9e9c068f596e36bc6453f4aebc6a8370a16960a6ea03ed6dfae7d66995221b1f4c235001c9576989ae0fbc5943382e24ff6e1a3dbea6b8af62fbfed97cfcbd084168b18c24e03522968acdc83d3f658d7cf08faf42dcbfedae605e0546e08de39177ab388d4ed671d4f2efa4b8f4a46efaa76e19630d878262f2f2e980f7d49a9486e7fed2314a1a2975e ...
066fded1daaf151d99aff16f342f0bbc428895577d3dd4d8f780ddce141b3a71e93963eed9886d3f588445c7d7de9ddaeefe075f3e5e112d03777c3b6378f35d6a0f7cd631f43b92d83991f707911b1dbf32b80cf0650d4dd55fa73725531539fb4436f49d1c52e0cfacb9b6606b7b233fafa6774c71765233cf38e483f1b34f8e086a33091087a2fe13f3931989097844415c1cd77be4ad22e1d7b953a0eaee7c7362a7556b15e26f865ba7b7f3052ffc0717e38fc96da1fb7aa6b27d7d4880e41c973dab29dd985d88215cf06630c81b118ad62bb51d39044319305db80f274110f76ff6dd15a448f7ac8f885614b6ff09e05cf59fa173a ...
并查集定义并查集是一种树型的数据结构,用于处理一些不相交集合的合并及查询问题(即所谓的并、查)
初始化1234567//定义数组,记忆每个节点对应的父节点int fa[N];for (int i = 1; i <= N - 1; i++){ //初始时,每个节点的父节点就是自己本身 fa[i] = i;}
定义 find 函数,用于寻找某个节点的根节点(就是父节点的父节点的父。。。。。12345678910111213141516171819202122232425//非递归写法int find(int x){ while (fa[x] != x) { x = fa[x]; } return x;}//递归写法int find(int x){ if (fa[x] == x) return x; else { return find(fa[x]); }}//简化写法int find(int x){ return fa[x] == x ...
a39a1119751052137aae45c5cd48e688c2533ea2938937739528a9ccd5f780e8fdc74f2c6432519811f82ec7db4f1f342d6bd15d7529f1cbffc1b183f3bcf9bef2c39db0397dfb7a84da7e69f2d24ad465084a7e673c985adf553db9b3ae01e2936b2968450dec091b4555d49055596c4c1171a8e26524da721ee6266106a856373e1f00a7e1e7ec2562f6f7970ccf6b31196d9a781aeeeac3a40104c7cb46cc09cb8c731fecaa39a3ce5e5fc9411c4c6d4ae9cfdc9e322da74714659ef0e15e8b2eb74a104432065318bd6bdd03303b8fc50a15a47b2b93befab119f3c557bcbc323b618d9934bfdc0532df05c39deb557e2563fcb9b2ca0 ...
优先队列 #include <queue>
代码 含义
q.push(ele) 元素ele入栈增加元素 (logN)
q.pop() 弹出队首元素 (logN)
q.top() q.top() == 队首元素
q.empty() 判断栈内是否为空,空为真
q.size() 返回栈内元素的个数
没有 clear!!!设置优先级1234567//默认大根堆,每次取出最大元素priority_queue<int> q;//小根堆,每次取出最小元素priority_queue<int, vector<int>, greater<int>> q;//less<int> 表示数字大的优先级大,堆顶为最大的元素//greater<int>表示数字小的优先级大,堆顶为最小的元素
pair代替二元结构体
12345678910111213141516171819//头文件#include <utility>//1.初始化定义pai ...
栈 代码 含义
s.push(ele) 元素ele入栈增加元素
s.pop() 弹出栈顶元素
s.top() s.top() == 栈顶元素
s.empty() 判断栈内是否为空,空为真
s.size() 返回栈内元素的个数
数组模拟栈的遍历12345678910// 栈 从左至右为栈底到栈顶int s[100];// p 代表栈顶指针,初始栈内无元素,p为-1int p = -1;for(int i = 0; i <= 11; ++i) { //入栈 s[++p] = i;}// 出栈int top_element = s[p--];
栈的应用题目大意:有 n 个人从左到右排成一队,全部人向右看,每个人会被比自己高的人挡住,求出每个人是被哪个位置的人挡到。如果没有被挡住就输出 0。
思考:因为向右看,所以最右一个人一定是输出 0,从右向左考虑,如果一个人 a,a 的左边人如果比 a 高,那么 a 就失去挡住别人的能力,如果左边人比 a 矮,那么两人都可能有挡住别人的能力。
代码模板 ...
d101e02848ecb71ffa2052fc1a679eef081a285546ec419740153c186cf2bb7f86f59de6091abd254ae54002f61604a00b739fd27583f3948b0dae3085ca14bd2e66350e94e43b25f1f4bb6ca528aabcd2ad51ed61734a6317781be9c2a8053b1e76a86fc956294af26a49e23cdc0ade6a3798bfd9a2e91754f89752f86549d174916aea3234104f42e9aade0f2f7ba68e72d65e70fd2eb75987446c1f5c415e2ce9c8fa42e4e59fc9978776640705b87af005e315578330cb883791a23f807cc22d8be5b4e06256550c842a1345c72d15877598f69180726cd8126a9ce70bb46e15068f169a478146d7d3a6f17775ed7b8eaf1dfff7d4626 ...
本博文转载自 黑马程序员 的开源资料,只是为了方便自己学习,并非盗用他人成果!C++基础入门1 C++初识1.1 第一个 C++程序编写一个 C++程序总共分为 4 个步骤
创建项目
创建文件
编写代码
运行程序
1.1.1 创建项目 Visual Studio 是我们用来编写 C++程序的主要工具,我们先将它打开
1.1.2 创建文件右键源文件,选择添加->新建项
给 C++文件起个名称,然后点击添加即可。
1.1.3 编写代码1234567891011#include<iostream>using namespace std;int main() { cout << "Hello world" << endl; system("pause"); return 0;}
1.1.4 运行程序
1.2 注释作用:在代码中加一些说明和解释,方便自己或其他程序员程序员阅读代码
两种格式
单行注释:// 描述信息
通常放在一行代码的上方,或者一条语句的末尾,= ...
本博文转载自 黑马程序员 的开源资料,只是为了方便自己学习,并非盗用他人成果!C++核心编程本阶段主要针对 C++==面向对象==编程技术做详细讲解,探讨 C++中的核心和精髓。
1 内存分区模型C++程序在执行时,将内存大方向划分为4 个区域
代码区:存放函数体的二进制代码,由操作系统进行管理的
全局区:存放全局变量和静态变量以及常量
栈区:由编译器自动分配释放, 存放函数的参数值,局部变量等
堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收
内存四区意义:
不同区域存放的数据,赋予不同的生命周期, 给我们更大的灵活编程
1.1 程序运行前 在程序编译后,生成了 exe 可执行程序,未执行该程序前分为两个区域
代码区:
存放 CPU 执行的机器指令
代码区是共享的,共享的目的是对于频繁被执行的程序,只需要在内存中有一份代码即可
代码区是只读的,使其只读的原因是防止程序意外地修改了它的指令
全局区:
全局变量和静态变量存放在此.
全局区还包含了常量区, 字符串常量和其他常量也存放在此.
...
本博文转载自 黑马程序员 的开源资料,只是为了方便自己学习,并非盗用他人成果!C++提高编程
本阶段主要针对 C++==泛型编程==和==STL==技术做详细讲解,探讨 C++更深层的使用
1 模板1.1 模板的概念模板就是建立通用的模具,大大提高复用性
例如生活中的模板
一寸照片模板:
PPT 模板:
模板的特点:
模板不可以直接使用,它只是一个框架
模板的通用并不是万能的
1.2 函数模板
C++另一种编程思想称为 ==泛型编程== ,主要利用的技术就是模板
C++提供两种模板机制:函数模板和类模板
1.2.1 函数模板语法函数模板作用:
建立一个通用函数,其函数返回值类型和形参类型可以不具体制定,用一个虚拟的类型来代表。
语法:
12template<typename T>函数声明或定义
解释:
template — 声明创建模板
typename — 表面其后面的符号是一种数据类型,可以用 class 代替
T — 通用的数据类 ...

