1.数组和链表的区别2.栈和队列的区别3.static关键字的作用4.volatile关键字5.宏的优缺点6.assert断言7.引用和指针的区别8.EOF与feof的区别
数组和链表的区别
数组:
①数组的空间是一块连续的空间。
②对数组的读取快速方便,直接通过下表访问,时间复杂度为O(1)。
③使用数组时必须提前开辟好空间,但是如果使用不完,就会存在浪费空间。但是如果不够用,就要重新开辟空间,原来数组中的内容也必须拷贝过去。
④在数组中进行随意位置的插入和删除不方便,必须移动数据。
链表:
①链表的空间不是连续的,每个节点都保存着下一个节点的位置。 ...
C++的String类的实现 && 深拷贝 && 写时拷贝
浅拷贝的缺陷?
①普通的浅拷贝会在拷贝构造初始化完成后,对象在生命周期结束后,就会析构多次而使程序崩溃。
②如果改变了其中的一个值,另外一个也会随之而改变。
所以为了防止以上两种问题,就有了解决的方案。
1. 深拷贝
在拷贝的时候,为其也申请相同大小的一块空间。每个对象都指向自己的空间。这样就不会因为析构同一块空间而出现崩溃。
但是,在有些情况下深拷贝会浪费空间。比如:当现实中...
1.进程2.僵尸进程3.孤儿进程4.进程的优先级
冯·诺依曼体系结构
特点:在该体系结构中,外设不能直接与cpu连接,而是要先通过与存储器,存储器再与cpu通信。下面我们模拟一下两个人通过软件发送消息的过程:
操作系统(OS)
例如,在学校中,校长就是我们的管理者,比如校长在分发我们学生的奖学金时,首先通过学生的成绩来评选优秀的学生,而执行这件事的是辅导员,校长就可以通过辅导员来管理学生的奖学金。
例比到操作系统,操作系统在管...
1.如何实现一个不能被继承的类2.如何实现一个只能在栈上生成对象的类3.如何实现一个只能在堆上生成对象的类
1.如何实现一个不能被继承的类
不能被继承的类,我们先回忆一下,当子类继承父类时会发生什么?子类在继承父类时,会继承父类的所有成员,并且子类的构造函数(在初始化时)会合成父类的构造函数进行合成。蹬蹬蹬……那么,如果我们把父类的构造函数声明为私有(private)的,当子类在初始化调用构造函数时就会失败。但是,把构造函数声明为私有的,也就不能在类外创建对象了。所以,我们还需要在类中写一个静态的函数...
基于Linux的MYSQL,基本的操作
数据库的作用:高效的存储和处理数据的介质(主要指内存和磁盘).
1.连接数据库
mysql [地址] [用户] [密码] [端口](-P,如果连接的是主机就可以省略)
mysql -h 127.0.0.1 -u root -p //后面的可以省略
mysql -h 127.0.0.1 -u root //可以连接
mysql -h 127.0.0.1 //可以连接
...
进程创建,进程等待,进程终止,进程的程序替换
进程创建
fork()函数:
在原来的博客中已经写过一次进程创建了,在这儿就详细讲解一下进程是怎么创建的.
已经知道,在Linux中,创建进程可以通过调用fork函数来实现,那么当我们在调用fork函数时,操作系统内部到底是怎样实现的呢?
fork()函数在内部通过已经存在的进程创建出一个新进程,而新进程就是子进程.
#include<unistd.h>
pid_t for...
C++之多态的实现以及虚表
在C++中,多态:见名知意,就是多种形态.虚函数的主要作用就是实现多态,就是父类的指针/引用调用重写的虚函数,当父类的指针/引用指向父类对象时调用的是父类的虚函数,指向子类时指向子类的虚函数.
多态的实现原理
在有虚函数的对象实例中都存在一张虚函数表(简称虚表),而虚表中存放的则是实际应该调用的虚函数.
下面我们通过代码来模拟查找一下:...
浅谈模板函数和模板类以及不使用乘除,for,while,等循环和递归来计算1+2+3+4+....+n的值
模板函数
概念:一种与类型无关的代码.
作用:复用.
下面通过一个实例来实现:
template<class T> //类比函数参数,但是模板参数传递的是类型
T Add(T a,T b)
{
return a + b;
}
int main()
{
int a = 10;
int b = 20;
cout&
python 基础语法知识
附网址 :http://www.runoob.com/python/python-basic-syntax.html (1)标识符 1.标识符由字母、数字、下划线组成。所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。 2.以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入; 以双下划线开头的 __foo 代表类的私有成员 以双下划线开头和结尾的 __foo__ 代表 Python 里特殊方法专用的
Java基本数据类型之char
今天看到一道题,是这样子的: package test; public class Char { public static void main(String[] args) { char ch1 = 97; char ch2 = 'a'; System.out.println("ch1=" + ch1); System.out.println("ch2=" + ch2); } } 当时下意识作出判断,输出的结果分别应该是“ch1=97”和“ch2=a”,但答案都是a。于是补了一下这方面的知识
Day1 初步认识Python
天气有点阴晴不定~ (截图来自----------金角大王) 1.学习了计算机概论(CPU/Memory/Disk,memory的存在是为了解决信息传输产生的时延) 2.了解了操作系统(OS) 3.初步认识python 3.1 注:解释型语言最大的优点是可以跨平台(只要windows、linux等不同的OS安装了解释器(虚拟机))。 编译型语言相对于解释型语言运行速度快,但跨平台需要重新编译,因为在windows上编译后的机器语言在Linux上是不能被理解的 还有python开发效率高,可
使用ramdisk内存分区给常用软件加速
::参考内存盘软件https://download.csdn.net/download/zly6tz/9717137 cls
@echo off
::内存虚拟盘符-内存盘大小自己查看源目录大小
::下面是设置vs2008,vs插件VisualAssist,chrome,我设置的是8G,目前使用了2.3g
::此内存盘需要设置对应文件-开机时加载,关机保存即可
@SET VDisk=S:
echo 正在努力工作...
::下面的项 自己按需修改
call :SRCopyMKLink "C
Linux内核0.11 makefile文件说明
#
# if you want the ram-disk device, define this to be the
# size in blocks.
# 如果要使用 RAM 就定义块的大小(注释掉了),这是一个编译时参数,如果定义了在下面会用到。
RAMDISK = #-DRAMDISK=512
AS86 =as86 -0 -a #8006汇编的编译器和连接器。后面参数分别是:
LD86 =ld86 -0 # -0 生成8086目标程序, -a 生成与gas 和 g
摘要算法MessageDigest
Apache提供的Commons-codec中对MessageDigest进行了封装,可以直接使用,如果想自己实现,MessageDigest位于java.security包下。 摘要算法同样不是加密算法,因为经过摘要计算之后,数据往往无法还原,通常用于保证数据传输的完整性。 在数据传输中,对所有的数据进行摘要计算,当另一台电脑获取数据之后,进行同样的摘要计算,如果结果相同,那么说明本次接收到完整的数据。 在一些个性化的设计中,也有使用摘要算法生成密钥的做法。 MD5摘要 MD5算法生成字符串
今日推荐
周排行