自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 深入理解计算机系统第三版 家庭作业第六章6.38-6.40参考答案和测试程序

测试程序:可直接运行 #include <iostream> using namespace std; #define line 64 unsigned calc_address(unsigned head, int i, int j, int N,int bias) { return head + i * N * 16 + j * 16 + bias * 4; } unsigned calc_line(unsigned add, int block_size) { return (ad

2021-05-10 15:13:20 405

原创 深入理解计算机系统第三版 家庭作业第六章6.37参考答案和测试程序

6.37 答案: 函数 N=64 N=60 sumA 25% 25% sumB 100% 25% sumC 50% 25% 参考程序:可以直接运行 #include <iostream> using namespace std; #define line 256 unsigned calc_address(unsigned head, int i, int j, int N); unsigned calc_address(unsigned head, int i,

2021-05-10 14:58:48 657 1

原创 Effective C++构造/析构/赋值运算 条款03-12

若想在const成员函数中修改成员变量,需要在成员变量前加mutable class CTextBlock { std::size_t length() const; private: char* pText; mutable size_t textLength; //这些成员变量可能总是会被修改 mutable bool lengthIsValid; //即使在const成员函数内 }; size_t CTextBlock::length() const { if (!lengthIsVa

2020-11-25 13:51:16 206

原创 并查集

#include <iostream> using namespace std; const int N=100010; int p[N]; int n,m; //找到x所在集合的祖宗结点。 int find(int x) { if(p[x]!=x) p[x]=find(p[x]); return p[x]; } int main(){ cin>>n>>m; for(int i=0;i<n;i++) p[i]=i; wh

2020-11-17 18:36:48 99

原创 动态规划做题思路

动态规划题目特点 1、计数 有多少种方式走到右下角 有多少种方法选出k个数使得和是sum 2、求最大值最小值 从左上角走到右下角路径的最大数字和 最长上升子序列长度 3、求存在性 取石子游戏,先手是否必胜 能不能选出k个数使得和是sum 组成部分 一:确定状态 (1)最后一步 (2)确定子问题 二:转移方程 三:初始条件和边界情况 四:计算顺序 例题一: 有2元,5元,7元硬币,求组合成27元硬币所用最少硬币数。 一:确定状态 找出最后一步:最优策略是K枚硬币a1,a2……ak加起来是27 最后

2020-11-12 19:36:04 148

原创 关于链表的删除和头指针的易错点

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x), next(next.

2020-11-07 16:53:46 522

原创 STL- 常用算法

5 STL- 常用算法 概述: 算法主要是由头文件<algorithm> <functional> <numeric>组成。 <algorithm>是所有STL头文件中最大的一个,范围涉及到比较、 交换、查找、遍历操作、复制、修改等等 <numeric>体积很小,只包括几个在序列上面进行简单数学运算的模板函数 <functional>定义了一些模板类,用以声明函数对象。 5.1 常用遍历算法 学习目标: 掌握常用的

2020-11-05 18:43:58 163

原创 函数对象

4 STL- 函数对象 4.1 函数对象 4.1.1 函数对象概念 概念: 重载函数调用操作符的类,其对象常称为函数对象 函数对象使用重载的()时,行为类似函数调用,也叫仿函数 本质: 函数对象(仿函数)是一个类,不是一个函数 4.1.2 函数对象使用 特点: 函数对象在使用时,可以像普通函数那样调用, 可以有参数,可以有返回值 函数对象超出普通函数的概念,函数对象可以有自己的状态 函数对象可以作为参数传递 示例: #include <string> //1、函数对象在使用时,可以像

2020-11-05 13:44:14 93

原创 STL

1、TL初识 1.1 STL的诞生 长久以来,软件界一直希望建立一种可重复利用的东西 C++的面向对象和泛型编程思想,目的就是复用性的提升 大多情况下,数据结构和算法都未能有一套标准,导致被迫从事大量重复工作 为了建立数据结构和算法的一套标准,诞生了STL ​ 1.2 STL基本概念 STL(Standard Template Library,标准模板库) STL 从广义上分为: 容器(container) 算法(algorithm) 迭代器(iterator) 容器和算法之间通过迭代

2020-11-05 13:18:22 491

原创 模板

1.3.4 类模板对象做函数参数 类模板实例化出的对象,向函数传参的方式 一共有三种传入方式: 指定传入的类型 — 直接显示对象的数据类型 参数模板化 — 将对象中的参数变为模板进行传递 整个类模板化 — 将这个对象类型 模板化进行传递 //类模板 template<class NameType, class AgeType = int> class Person { public: Person(NameType name, AgeType ag

2020-11-03 23:15:34 113

原创 C++核心编程

C++核心编程 1、程序的内存模型 1.1程序运行前 1、代码区 存放CPU执行的机器指令 共享:对于频繁被执行的程序只在内存中有一份代码 只读:防止程序意外修改指令 2、全局区 存放全局变量和静态变量 全局区还包含了常量区:包含了字符串常量和其他常量 该区域数据在程序结束后释放。 全局区以外的:局部变量和const修饰的局部变量(局部常量) 1.2程序运行后 3、栈区 编译器自动释放,存放函数的参数值(形参),局部变量等。 4、堆区 由程序员分配释放,若不释放,程序结束时由操作系统回收 在C++中利用

2020-11-03 18:29:40 950

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除