随笔分类 -  手撕面包

摘要:题目 在规定 M * N 大小的地图,放置 n 个矩形,是否能够放下,若能,请给出排布结果。 输入:M, N, n, n 个矩形的长宽。 分析 n个矩形必须要一个一个放入地图,当放不下时回退 DFS 为什么某些放置策略会失败? 矩形的横纵不对,矩形的位置不对,矩形的放置顺序不对 放置策略 放置顺序: 阅读全文
posted @ 2024-10-02 15:31 某糕 阅读(36) 评论(0) 推荐(0)
摘要:前言 面试的时候遇到了,是从来没想过会出问题的手撕。竟然在面试环节下出了不少纰漏。 要点 构造函数:默认构造、拷贝构造、赋值运算符重载、移动构造函数、析构函数 push_back/pop_back 代码 #include <iostream> using namespace std; #define 阅读全文
posted @ 2024-09-25 12:28 某糕 阅读(85) 评论(0) 推荐(0)
摘要:要点 线程池,功能是管理线程资源,管理任务队列。空闲线程从任务队列中取出任务完成,需要线程时将任务挂在任务对列。 由于对任务队列的操作要实现同步,引入了互斥信号量和条件变量。 当线程池生命周期结束时,不允许再挂载任务,引入一个原子变量stop_flag 实现线程池ThreadPool类,成员变量有: 阅读全文
posted @ 2024-09-24 00:41 某糕 阅读(83) 评论(0) 推荐(0)
摘要:要点 维护一个资源(在生产者-消费者中即流水线的位置)池,实现put()/get()两个函数。由于对信号量的操作是互斥的,要引入条件变量和信号量。 实现资源池类Pool,成员变量: mtx : mutex cv : condition_variable que : queue capacity : 阅读全文
posted @ 2024-09-23 22:38 某糕 阅读(40) 评论(0) 推荐(0)
摘要:要点 成员是指向实例的指针和应用计数 应用计数也应该是一个共享的int指针,因为这个计数需要各个共享指针同步维护 需要重载的函数有:用指针构造;拷贝构造;赋值运算符=;解地址运算符*;指针调用成员的运算符->;析构函数; 涉及到计数的部分: 构造时初始化:1 拷贝构造:+1 赋值=:原有-1,新对象 阅读全文
posted @ 2024-09-22 22:38 某糕 阅读(122) 评论(0) 推荐(0)