- 博客(11)
- 收藏
- 关注
原创 深入理解计算机系统第三版 家庭作业第六章6.38-6.40参考答案和测试程序
测试程序:可直接运行#include <iostream>using namespace std;#define line 64unsigned 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 390
原创 深入理解计算机系统第三版 家庭作业第六章6.37参考答案和测试程序
6.37答案:函数N=64N=60sumA25%25%sumB100%25%sumC50%25%参考程序:可以直接运行#include <iostream>using namespace std;#define line 256unsigned calc_address(unsigned head, int i, int j, int N);unsigned calc_address(unsigned head, int i,
2021-05-10 14:58:48 633
原创 Effective C++构造/析构/赋值运算 条款03-12
若想在const成员函数中修改成员变量,需要在成员变量前加mutableclass 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 194
原创 并查集
#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 95
原创 动态规划做题思路
动态规划题目特点1、计数有多少种方式走到右下角有多少种方法选出k个数使得和是sum2、求最大值最小值从左上角走到右下角路径的最大数字和最长上升子序列长度3、求存在性取石子游戏,先手是否必胜能不能选出k个数使得和是sum组成部分一:确定状态(1)最后一步(2)确定子问题二:转移方程三:初始条件和边界情况四:计算顺序例题一:有2元,5元,7元硬币,求组合成27元硬币所用最少硬币数。一:确定状态找出最后一步:最优策略是K枚硬币a1,a2……ak加起来是27最后
2020-11-12 19:36:04 141
原创 关于链表的删除和头指针的易错点
/** * 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 506
原创 STL- 常用算法
5 STL- 常用算法概述:算法主要是由头文件<algorithm> <functional> <numeric>组成。<algorithm>是所有STL头文件中最大的一个,范围涉及到比较、 交换、查找、遍历操作、复制、修改等等<numeric>体积很小,只包括几个在序列上面进行简单数学运算的模板函数<functional>定义了一些模板类,用以声明函数对象。5.1 常用遍历算法学习目标:掌握常用的
2020-11-05 18:43:58 150
原创 函数对象
4 STL- 函数对象4.1 函数对象4.1.1 函数对象概念概念:重载函数调用操作符的类,其对象常称为函数对象函数对象使用重载的()时,行为类似函数调用,也叫仿函数本质:函数对象(仿函数)是一个类,不是一个函数4.1.2 函数对象使用特点:函数对象在使用时,可以像普通函数那样调用, 可以有参数,可以有返回值函数对象超出普通函数的概念,函数对象可以有自己的状态函数对象可以作为参数传递示例:#include <string>//1、函数对象在使用时,可以像
2020-11-05 13:44:14 88
原创 STL
1、TL初识1.1 STL的诞生长久以来,软件界一直希望建立一种可重复利用的东西C++的面向对象和泛型编程思想,目的就是复用性的提升大多情况下,数据结构和算法都未能有一套标准,导致被迫从事大量重复工作为了建立数据结构和算法的一套标准,诞生了STL1.2 STL基本概念STL(Standard Template Library,标准模板库)STL 从广义上分为: 容器(container) 算法(algorithm) 迭代器(iterator)容器和算法之间通过迭代
2020-11-05 13:18:22 467
原创 模板
1.3.4 类模板对象做函数参数类模板实例化出的对象,向函数传参的方式一共有三种传入方式:指定传入的类型 — 直接显示对象的数据类型参数模板化 — 将对象中的参数变为模板进行传递整个类模板化 — 将这个对象类型 模板化进行传递//类模板template<class NameType, class AgeType = int> class Person{public: Person(NameType name, AgeType ag
2020-11-03 23:15:34 109
原创 C++核心编程
C++核心编程1、程序的内存模型1.1程序运行前1、代码区存放CPU执行的机器指令共享:对于频繁被执行的程序只在内存中有一份代码只读:防止程序意外修改指令2、全局区存放全局变量和静态变量全局区还包含了常量区:包含了字符串常量和其他常量该区域数据在程序结束后释放。全局区以外的:局部变量和const修饰的局部变量(局部常量)1.2程序运行后3、栈区编译器自动释放,存放函数的参数值(形参),局部变量等。4、堆区由程序员分配释放,若不释放,程序结束时由操作系统回收在C++中利用
2020-11-03 18:29:40 909
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人