2019年9月9日

C/C++中vector与list的区别

摘要: 1.vector数据结构vector和数组类似,拥有一段连续的内存空间,并且起始地址不变。因此能高效的进行随机存取,时间复杂度为o(1);但因为内存空间是连续的,所以在进行插入和删除操作时,会造成内存块的拷贝,时间复杂度为o(n)。另外,当数组中内存空间不够时,会重新申请一块内存空间并进行内存拷贝。 阅读全文

posted @ 2019-09-09 10:43 二进制的奥秘 阅读(4900) 评论(0) 推荐(0) 编辑

2019年6月19日

C/C++中内存泄漏、内存溢出与野指针的解释与说明

摘要: 1、内存泄漏 内存泄漏是指我们在堆中申请(new/malloc)了一块内存,但是没有去手动的释放(delete/free)内存,导致指针已经消失,而指针指向的东西还在,已经不能控制这块内存,所以就是内存泄漏了,看下面的例子。void remodel(std::string &str){ std::s 阅读全文

posted @ 2019-06-19 10:04 二进制的奥秘 阅读(2578) 评论(0) 推荐(0) 编辑

C++中深拷贝与浅拷贝

摘要: 浅拷贝和深拷贝 在某些状况下,类内成员变量需要动态开辟堆内存,如果实行位拷贝,也就是把对象里的值完全复制给另一个对象,如A=B。这时,如果B中有一个成员变量指针已经申请了内存,那A中的那个成员变量也指向同一块内存。这就出现了问题:当B把内存释放了(如:析构),这时A内的指针就是野指针了,出现运行错误 阅读全文

posted @ 2019-06-19 09:40 二进制的奥秘 阅读(1894) 评论(0) 推荐(0) 编辑

2019年6月17日

C++中的构造函数与析构函数及组合类的调用

摘要: // 构造函数与析构函数及类的组合#include "stdafx.h"#include <iostream>using namespace std;//枚举enum CPU_Rank {P1=1,P2,P3,P4,P5,P6,P7};class CPU{private: CPU_Rank rank 阅读全文

posted @ 2019-06-17 14:59 二进制的奥秘 阅读(514) 评论(0) 推荐(0) 编辑

2019年5月24日

Linux中request_irq()中断申请与处理说明

摘要: 1、 中断的理解 中断你可以理解为就是一种电信号,是由硬件设备产生的然后发送给处理器,处理器接收到中断后,就会马上向操作系统反映此信号,之后就是系统的工作了。 这里有两个注意的地方,第一中断是随时都可以产生,意味着中断的处理程序随时都可以执行,所以得保证中断处理程序能够快速执行,才可能尽快的恢复中断 阅读全文

posted @ 2019-05-24 09:50 二进制的奥秘 阅读(11656) 评论(0) 推荐(0) 编辑

2019年5月22日

STM32中引脚复用说明

摘要: 端口复用的定义 STM32有许多的内置外设(如串口、ADC、DCA等等),这些外设的外部引脚都是和GPIO复用的。也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候,就叫复用。详细的可以参考《STM32F103ZET6数据手册》p30的内容,表格的倒数第 阅读全文

posted @ 2019-05-22 14:47 二进制的奥秘 阅读(6883) 评论(0) 推荐(0) 编辑

原码、补码、反码的关系

摘要: 一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 1、机器数 一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1. 比如,十进制中的数 +3 ,计算机字长为8位,转换成二进制就是0000 阅读全文

posted @ 2019-05-22 11:09 二进制的奥秘 阅读(71501) 评论(3) 推荐(8) 编辑

2019年5月21日

Linux中光标消失解决办法

摘要: 假如Linux下光标消失,不要急: echo -e "\033[?25l" 隐藏光标 echo -e "\033[?25h" 显示光标 (转载自:https://blog.csdn.net/jhyworkspace/article/details/52261687) 阅读全文

posted @ 2019-05-21 21:29 二进制的奥秘 阅读(7080) 评论(0) 推荐(0) 编辑

Java中final与C++中const的关系

摘要: Java中的final有三种主要用法: (1)修饰变量: final变量是不可改变的,但它的值可以在运行时刻初始化,也可以在编译时刻初始化,甚至可以放在构造函数中初始化,而不必在声明的时候初始化,所以下面的语句均合法: final int i = 1; // 编译时刻 final int i2 = 阅读全文

posted @ 2019-05-21 17:44 二进制的奥秘 阅读(2293) 评论(0) 推荐(0) 编辑

如何理解进程和线程

摘要: 关于进程和线程,大家总是说的一句话是“进程是操作系统分配资源的最小单元,线程是操作系统调度的最小单元”。这句话理论上没问题,我们来看看什么是所谓的“资源”呢。 什么是计算机资源 经典的冯诺依曼结构把计算机系统抽象成 CPU + 存储器 + IO,那么计算机资源无非就两种: 1. 计算资源 2. 存储 阅读全文

posted @ 2019-05-21 11:12 二进制的奥秘 阅读(1340) 评论(0) 推荐(0) 编辑

导航