C++实现实现逆时针旋转矩阵
今天遇到一道面试题,要求输入N,并且构造一个逆时针N*N的旋转矩阵。花了一下午时间写完的,把这个分享给大家。//构造逆时针矩阵 int **BuildMatrix(int width) { int **pMatrix = new int*[width]; for (int i = 0; i < width; ++i) { pMatrix[i] = n...

在C++Builder下实现FTP断点续传
一、前言< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" />断点续传,顾名思义就是在文件传输过程中由于网络中断或其它原因造成传输中断,这时文件只传输了一部分,在下次在传输时能够接着前面的传输进度继续进行。在网络状况不稳定,特别是Internet环境下,特别有用。目前的通用下载工具,不论是....
实现无入侵式C++代码mock工具
背景在单元测试中,往往需要减少被测函数的外部依赖,如网络访问、数据库访问等。我们希望有一个mock工具能让我们轻松地屏蔽掉外部依赖。C++的开源mock工具比较少,而且大多是基于多态实现的(如gmock),只支持mock虚函数,需要对原有代码结构进行调整,或编写mock类继承自原有类才能使用,工作量太大,我们的目标是单测代码与原有项目工程隔离,不需要为了单测对线上代码逻辑进行太大修改。为了实现真....
【C++要笑着学】Functor 仿函数 | 模拟实现 stack & queue | 模拟实现优先级队列(二)
Ⅲ. 模拟实现 priority_queue0x00 基本实现思路 据我所知,在优先级队列中,插入数据和删除数据的时间复杂度为 。默认情况下的优先级队列是大堆,我们先不考虑用仿函数去实现兼容大堆小队排列问题,我们先去实现大堆,先把基本的功能实现好,带着讲解完仿函数后再去进行优化实现。 优先级队列相较于普通的队列,其区别主要是在 push 和 pop 上,即需要在插入 / 删除数据的同....

【C++要笑着学】Functor 仿函数 | 模拟实现 stack & queue | 模拟实现优先级队列(一)
写在前面在上一章中,我们讲解了STL的栈和队列,本章我们来模拟实现一下它们。在讲解优先级队列的同时我们顺便把上一章提到的仿函数进行一个讲解,使用仿函数可以有效替换使用难以理解的函数指针的场景。我们通过仿函数 less 和 greater 去控制优先级队列的 Compare,从而能同时适配升序和降序。Ⅰ. 模拟实现 stack0x00 实现思路 插入数据删除数据这些逻辑其实没有必要自己实现,而是.....

【C++要笑着学】迭代器适配器 | 内嵌类型实现反向迭代器 | 迭代器萃取
写在前面上一章讲解 list 模拟实现时,我们简单的提到了反向迭代器,我们说反向迭代器其实就是对正向迭代器的一种封装 —— 适配器模式(配接器模式)。当时我们做的是简单的了解,本章我们就来探讨这一部分的知识。0x00 引入:什么是适配器 上一章讲解 list 迭代器的实现时,我们提到了反向迭代器的实现。 代码:reverse_iterator (我们自己实现的)namespace chaos .....

【C++要笑着学】list 核心框架接口的模拟实现 | 运算符重载实现list迭代器 | 妙用模板实现const迭代器(二)
Ⅳ. list 的拷贝构造和赋值重载0x00 引入:list 的同样涉及深浅拷贝问题❓ 思考:这里的拷贝构造是深拷贝还是浅拷贝?void test_list4() { list<int> L1; L1.push_back(1); L1.push_back(2); L1.push_back(3); list<int> L2(L1); for (aut...

【C++要笑着学】list 核心框架接口的模拟实现 | 运算符重载实现list迭代器 | 妙用模板实现const迭代器(一)
写在前面我们在上一章说过,list 其实就是带哨兵位循环双向链表而已,这种链表虽然结构复杂,但是实现起来反而是最简单的,我们在数据结构专栏中有过详细的讲解。当时我们是用C语言实现,这里对 list 的实现其实也是大同小异的。当然,我们重点还是倾向于去理解它的底层实现原理,所以我们将对其实现方式进行进一步地简化,并且按照我们自己习惯的命名风格去走。我们之前已经模拟实现过 string 和 vec.....

【C++要笑着学】vector 核心框架接口的模拟实现 | 基于STL3.0版本的简化vector | 浅谈迭代器失效问题(二)
Ⅳ. 浅谈迭代器失效问题0x00 引入:通过 insert / erase 了解迭代器失效问题我们通过实现 vector 的 insert 和 erase,去顺带讲解迭代器失效的问题。❓ 什么是迭代器失效?" 迭代器失效是一种现象,由特定操作引发,这些特定操作对容器进行操作,使得迭代器不指向容器内的任何元素,或者使得迭代器指向的容器元素发生了改变。"迭代器的主要作用就是让算法能够不用关心底层数据....

【C++要笑着学】vector 核心框架接口的模拟实现 | 基于STL3.0版本的简化vector | 浅谈迭代器失效问题(一)
写在前面STL 的源代码整体考虑的东西比较多,还要考虑和其他地方的结合,因此整体的设计是比较复杂的。基于这一系列原因,我们会以简单的形式去实现其核心框架接口,方便去学习 vector。还是那句话,我们去模拟实现它们,不是为了造更好的轮子,而是为了去学习它,理解它的本质!自己造一次,心里会更清楚,更利于加深对它们的理解。Ⅰ. 实现基本框架0x00 结构的定义 我们参考《STL源码剖析》,用 ST.....

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。
开发与运维
集结各类场景实战经验,助你开发运维畅行无忧
+关注