- 博客(47)
- 资源 (1)
- 收藏
- 关注
原创 回溯法求全排列和所有子序列
// ConsoleApplication6.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <vector>#include <stdio.h>#include <stdlib.h>using namespace std;int count1 = 0;int count2 = 0;int count3 = 0;int number = 0;class Solution {public:..
2020-11-24 19:09:30
425
翻译 QT 源码相关的文章
QT源码相关的文章 信号 槽https://www.cnblogs.com/felix-wang/p/6212197.htmlQObjecthttps://blog.youkuaiyun.com/dpsying/article/details/79253390
2020-11-12 16:58:44
170
转载 对ESP EBP的理解
一直对寄存器ESP和EBP的概念总是有些混淆,查看定义ESP是栈顶指针,EBP是存取堆栈指针。还是不能很透彻理解。之后借于一段汇编代码,总算是对两者有个比较清晰的理解。下面是按调用约定__stdcall 调用函数test(int p1,int p2)的汇编代码;假设执行函数前堆栈指针ESP为NNpush p2 ;参数2入栈, ESP -= 4h , ESP = NN - 4hpush p1 ;参数1入栈, ESP -= 4h , ESP = NN - 8hcall test...
2020-09-16 08:46:43
251
原创 精彩链接
https://blog.youkuaiyun.com/zjws23786/article/details/80048529 关于类之间的关系 继承 实现 依赖 关联 聚合 组合
2020-08-28 09:17:56
200
转载 share_ptr使用注意事项
先介绍一下shared_ptr.是c++为了提高指针安全性而添加的智能指针,方便了内存管理。功能非常强大,非常强大,非常强大(不单单是shared_ptr,配合week_ptr以及enable_share_from_this()以及share_from_this())!!!对于支持智能指针的c++版本编程,能用智能指针就用智能指针!智能指针的头文件是<memory>,具体用法...
2019-05-22 07:10:08
4067
转载 这个题把我难住了
请阅读如下代码:#include <iostream>#include <string>using namespace std; class A { protected: int m_data; public: A(int data = 0) { m_d...
2019-05-21 18:22:44
253
转载 Linux内存管理(最透彻的一篇)转载
摘要:本章首先以应用程序开发者的角度审视Linux的进程内存管理,在此基础上逐步深入到内核中讨论系统物理内存管理和内核内存的使用方法。力求从外到内、水到渠成地引导网友分析Linux的内存管理与使用。在本章最后,我们给出一个内存映射的实例,帮助网友们理解内核内存管理与用户内存管理之间的关系,希望大家最终能驾驭Linux内存管理。前言内存管理一向是所有操作系统书籍不惜笔墨重点讨论的内容,无论市...
2019-05-13 21:59:50
197
原创 记录亲身经历的地平线面试(加时赛出局)
前天看了赢在中国的一段视频有个人说了一段话觉得蛮有道理的,说人应该经常性得主动承认和接受失败。所以我也很想把自己最近失败的一次经历总结出来,因为现在年龄有点大,记性不太好,随时可能忘掉一些事儿,方便以后没事儿拿出来看一下。也给没有太多面试的人提供一些技巧。也刚好离职在家,有些富裕的时间。 4月18号离职以来投投简历啥的,发现软件行业其实已经日渐变成一个传统行业,而互联网行...
2019-05-11 21:54:23
5352
转载 最少交换次数
将数组{3,7,1,6,2,4,8,5}中的元素从大到小的顺序排列,每次可以任意交换两个元素,求最少的交换次数。最少交换次数肯定是与8 7 6 5 4 3 2 1 不对应的数的个数再减可以形成的环的个数(因为每个环的最后一个数都不用排序的,前面都排好了,最后一个自然就序),此数组有两个环,所以是5次。hint:环指的是例如上面数组中的1 6 5三个数虽然都不在自己应该在的位置,但他们占...
2019-05-04 22:06:08
3519
2
原创 字符串反转
//// main.cpp// Test//// Created by Lee on 15-3-10.// Copyright (c) 2015年 Lee. All rights reserved.//#include <iostream>char* reversal(char* src){ char *start = src;...
2019-05-04 21:40:33
147
转载 阿里面试
这篇文章,给大家分享一个同学面试阿里某个部门时的经历。简单说一下这个同学面试的背景,本身技术底子还不错,在几个有一定知名度的中型互联网公司工作过,然后之前打算尝试一下阿里的职位,就去面试了。第一轮和第二轮面试,全部都通过了,面试官评价也是基本技术素养还可以,基础也不错,定级都是P6+的职级。但是第三面是那个部门老大P9出来面试他,结果就挂在这里了,所以把这个第三面的一些问题分享出来,给...
2019-05-04 21:17:10
303
1
原创 边缘计算原来是这个意思,起个名字怪怪的
什么是边缘计算边缘计算指的是在网络边缘结点来处理、分析数据。这里,我们给出边缘结点的定义,边缘结点指的就是在数据产生源头和云中心之间任一具有计算资源和网络资源的结点。比如,手机就是人与云中心之间的边缘结点,网关是智能家居和云中心之间的边缘结点。在理想环境中,边缘计算指的就是在数据产生源附近分析、处理数据,没有数据的流转,进而减少网络流量和响应时间。边缘计算的优点在人脸识别领...
2019-05-04 20:55:13
514
转载 linux 高端内存
Linux对内存的管理划分成三个层次,分别是Node、Zone、Page。对这三个层次简介如下:层次说明Node(存储节点)CPU被划分成多个节点,每个节点都有自己的一块内存,可以参考NUMA架构有关节点的介绍Zone(管理区)每一个Node(节点)中的内存被划分成多个管理区域(Zone),用于表示不同范围的内存Page(页面)每一个管理区又进一步被划分为多个页面,页面是内...
2019-05-03 15:05:54
222
转载 中断下半部三种机制
中断下半部的三种机制。对于一个中断,如何划分出上下两部分呢?哪些处理放在上半步,哪些放在下半部?中断下半部的处理对于一个中断,如何划分出上下两部分呢?哪些处理放在上半步,哪些放在下半部?这里有一些经验可供借鉴:如果一个任务对时间十分敏感,将其放在上半部。如果一个任务和硬件有关,将其放在上半部。如果一个任务要保证不被其他中断打断,将其放在上半部。其他所有任务,考虑放在下半...
2019-05-03 14:57:46
2064
转载 想成为嵌入式工程师的0x10个问题
预处理器(Preprocessor)1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL我在这想看到几件事情:1) #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)2)懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算...
2019-05-03 14:04:47
473
转载 linux 内核 seqlock
Linux并发控制——顺序锁(seqlock)定义在头文件linux/seqlock.h中;顺序锁(seqlock)是对读写锁的一种优化,提高了读锁和写锁的独立性。写锁不会被读锁阻塞,读锁也不会被写锁阻塞。写锁会被写锁阻塞。若使用顺序锁,读执行单元绝对不会被写执行单元所阻塞,也就是说,临界区可以在写临界区对被顺序锁保护的共享资源进行写操作的同时仍然可以继续读,而不必等待写执行单元完成之后...
2019-05-03 13:13:40
260
转载 操作系统用户态和内核态之间的切换过程
操作系统用户态和内核态之间的切换过程1. 用户态和内核态的概念区别究竟什么是用户态,什么是内核态,这两个基本概念以前一直理解得不是很清楚,根本原因个人觉得是在于因为大部分时候我们在写程序时关注的重点和着眼的角度放在了实现的功能和代码的逻辑性上,先看一个例子:1)例子 void testfork(){ if(0 = = fork())...
2019-05-03 13:08:33
5265
原创 二叉树各种求法
// ConsoleApplication4.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <stdlib.h>int btdata[] = { 6,3,8,5,2,7,9,15,17 };typedef struct BTNode{int Data;BTNode * plef...
2019-04-27 18:26:55
239
原创 找出最长的字符串
#include "stdafx.h"char word[100] = { "hello hellll heeeek heehehk kkkkkk" };bool Is_char(char m){if ((m > 'a' && m < 'z') || (m > 'A' && m < 'Z')){retu...
2019-04-27 14:16:19
884
原创 一个整理牌的程序,比如斗地主
// paixu.cpp : 定义控制台应用程序的入口点。///*本算法是对一个数组进行排序,类似我们打牌时抓到的一把牌进行排序比如假设1 最小 13最大 单张牌按大小排列 对子比单大要排在前面 三张比两张大如果手上的牌是1,2,3,2,5,3,2最终的排序是 2,2,2,3,3,5,1*/#include "stdafx.h"#include <st...
2019-04-27 11:44:04
293
原创 一个数组实现三个栈
一个数组实现三个栈的程序,是一个公司的面试题,思考了很久才写出来看来还是比较笨的。原创!!!!第一个栈在左边,从数组左面开始增长,一个从数组中间开始向右增长,一个从数组右面开始向左增长。支持随意大小数组模板支持整数,浮点数,字符。// stack3.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include<iostrea...
2019-04-25 22:25:20
350
转载 linux 启动流程
https://blog.youkuaiyun.com/JISHUQIANJIA/article/details/80920156?from=singlemessage
2019-04-25 09:19:51
146
转载 linux 内核同步 spin_lock
一、前言在linux kernel的实现中,经常会遇到这样的场景:共享数据被中断上下文和进程上下文访问,该如何保护呢?如果只有进程上下文的访问,那么可以考虑使用semaphore或者mutex的锁机制,但是现在中断上下文也参和进来,那些可以导致睡眠的lock就不能使用了,这时候,可以考虑使用spin lock。本文主要介绍了linux kernel中的spin lock的原理以及代码实现。由于...
2019-03-25 06:42:50
193
转载 linux内核的三种主要调度策略
linux内核的三种主要调度策略:1,SCHED_OTHER分时调度策略,2,SCHED_FIFO实时调度策略,先到先服务3,SCHED_RR实时调度策略,时间片轮转实时进程将得到优先调用,实时进程根据实时优先级决定调度权值。分时进程则通过nice和counter值决定权值,nice越小,counter越大,被调度的概率越大,也就是曾经使用了cpu最少的进程将会得到优...
2019-03-25 05:08:27
505
转载 浅析Linux内核调度
1.调度器的概述多任务操作系统分为非抢占式多任务和抢占式多任务。与大多数现代操作系统一样,Linux采用的是抢占式多任务模式。这表示对CPU的占用时间由操作系统决定的,具体为操作系统中的调度器。调度器决定了什么时候停止一个进程以便让其他进程有机会运行,同时挑选出一个其他的进程开始运行。2.调度策略在Linux上调度策略决定了调度器是如何选择一个新进程的时间。调度策略与进程的类型有关,内...
2019-03-25 04:47:26
206
转载 浮点数在内存中是怎么存储的?
浮点数存储规则根据国际标准IEEE(电气和电子工程协会)规定,任何一个浮点数NUM的二进制数可以写为:NUM = (-1)^S*M*2^E;//(S表示符号,E表示阶乘,M表示有效数字)①当S为0时,表示一个正数;当S为1时,表示一个负数②M表示有效数字,1<= M <2③2^E表示指数比如十进制的3.0,二进制就是0011.0 就可以写成(-1)^0*1.1*...
2019-03-23 06:43:02
495
转载 关于求负数补码
负数在计算机中是用补码的形式存储的,正数在计算机中是用原码的形式存储的。正数求原码直接将十进制转二进制即可,负数的补码是在原码的基础上除符号位外其余位取反后+1。但是用这种方式求负数补码用编程实现不太方便,下面介绍一种用编程实现起来较简便的求负数补码的方法:1. 求出负数绝对值的原码2. 从原码的最后一位数码位往前数,当遇到第一个1时停在此位置3. 将第一个1前面的数码全部求反...
2019-03-23 06:27:44
4152
转载 向量点乘(内积)和叉乘(外积、向量积)概念及几何意义解读(经典)
向量是由n个实数组成的一个n行1列(n*1)或一个1行n列(1*n)的有序数组;向量的点乘,也叫向量的内积、数量积,对两个向量执行点乘运算,就是对这两个向量对应位一一相乘之后求和的操作,点乘的结果是一个标量。点乘公式对于向量a和向量b:a和b的点积公式为:...
2019-03-23 06:22:35
1379
转载 OSG中改变模型的位置,姿态, osg::MatrixTransform的使用
之前用4行代码,写出了OSG中的hello,world程序。这个程序显示的是一头牛,牛的身子朝向屏幕。如下图所示:现在我想改变牛的姿态,让牛头朝向屏幕外。如下图所示。OSG中通过旋转模型来改变节点的姿态。使用的类叫 MatrixTransform。#include<osgViewer/Viewer>#include<osgDB/ReadFile>...
2019-03-23 06:07:19
2463
1
转载 C语言中常见的置位操作(置0或置1)转载
如何对某一位置0或者置1?写成宏,方便移植#define setbit(x,y) x|=(1<<y) //将X的第Y位置1#define clrbit(x,y) x&=~(1<<y) //将X的第Y位清0
2019-03-23 06:02:12
3891
转载 C++ 易错笔试题(转载)
下面这些题目都是我之前准备笔试面试过程中积累的,大部分都是知名公司的笔试题,C++基础薄弱的很容易栽进去。我从中选了10道简单的题,C++初学者可以进来挑战下,C++大牛也可以作为娱乐玩下(比如下面的第6题)。为了便于大家思考,将题目与答案分开,不过无论题目本身如何,我觉得后面的解析过程更值得学习,因为涉及很多我们学习C++过程中必知必会的小知识点 。第一部分:题目 如下函数,在3...
2019-03-23 05:55:01
228
原创 二叉平衡搜索二叉树的代码
二叉平衡搜索二叉树的代码,包含增删查,其中平衡二叉搜索树的建立是难点,就是在查的基础上加一次比较,不列出代码了。代码在vs2015上编译通过运行正常,有需要的拿去#include "stdafx.h"#include "stdio.h" #include "stdlib.h" #include "math.h" #define OK 1#define ERROR ...
2019-03-21 20:35:14
169
转载 精彩视频
https://mck.baidu.com/v1911416-189554-1069311.htmlhttps://www.bilibili.com/video/av16093191/?p=2
2019-03-17 17:31:32
129
转载 继承与多态 virtual关键字的使用场景
父类子类有同名函数时在外部调用时如果不加父类名则会默认调用子类的函数。C++有函数重写的功能需要添加virtual关键字,当时写上篇博文的时候在想那么既然默认使用子类的同名函数那么这个virtual有什么意义呢?这篇博文主要讲述 多态:一句相同的语句能有不同的实现。 当父类和子类有同名函数,调用时牵扯到了指针那么就跟virtual有关系了。 看以下几种情况: 定义两个...
2019-03-17 07:15:59
280
转载 继承- 子类与父类有同名函数,变量
学习了类的继承,今天说一下当父类与子类中有同名函数和变量时那么程序将怎么执行。首先明确当基类和子类有同名函数或者变量时,子类依然从父类继承。 举例说明: 例程说明: 父类和子类有同名的成员 data;同名函数printfa(); 子类增加两个打印函数:void son_data();void father_data(); 分别打印自身的da...
2019-03-17 07:13:40
6238
转载 归并排序
https://v.youku.com/v_show/id_XMzkzNDAxMDQ0NA==.html?spm=a2h0j.11185381.listitem_page1.5!3~Ahttps://v.youku.com/v_show/id_XMzkzNDAzMjg1Ng==.html?spm=a2h0j.11185381.listitem_page1.5!11~A 希尔排序...
2019-03-16 09:52:54
127
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人