- 博客(29)
- 资源 (2)
- 收藏
- 关注
原创 学习C++——顺序容器(2)
3、顺序容器操作3.1、向顺序容器添加元素除了array外,所有的标准库容器都提供了灵活的内存管理。在运行时可以动态添加或删除元素来改变容器的大小。使用push_backpush_back将一个元素追加到一个vector的尾部。除array和forward_list之外,每个顺序容器(list,vector,deque,string)都支持push_back. st
2015-01-31 21:48:33 352
原创 学习C++——顺序容器(1)
1、顺序容器概述以下表格列出了标准库中的顺序容器,所有的顺序容器都提供了快速顺序访问元素的能力。顺序容器类型vector可变大小数组。支持快速随机访问。元素是连续存储。deque双端队列。支持快速随机访问。在头尾位置插入、删除速度很快。list双向链表。支持双向顺序访问。在任何位置插入、删除速度都很快。forward_li
2015-01-31 15:33:05 627
原创 操作系统——磁盘
磁盘磁盘是一种非常普遍的外部存储设备,主要内容有:磁盘的硬件、磁盘的格式化、磁盘的调度算法以及出错处理。1、磁盘的硬件磁盘包括软盘和硬盘。磁盘由很多金属盘面组成,它们都固定在一根旋转轴上,由一个马达来驱动。当旋转轴开始旋转时,所有的盘片都会跟着旋转。每个盘片都有上下两个盘面,在盘面上涂有磁性材料,信息就记录在这些盘面上。磁盘的访问是以扇区为单位的,即使我们只想读写一个字
2015-01-31 13:19:26 956
原创 操作系统——I/O设备管理(2)
I/O软件为了更好地管理系统中的输入输出设备,我们需要哪一些软件?这些软件各自完成什么样的功能?它们之间的相互关系、组织结构是什么?在这些软件中,程序员负责做什么?操作系统负责做什么?I/O设备厂商负责做什么?1、I/O软件的接口
2015-01-29 09:15:41 3805
原创 操作系统——I/O设备管理(1)
计算机系统中不同类型的输入输出设备,如何对它们进行管理,使得各种设备资源能够得到充分、合理的利用,这是操作系统的一个主要的任务。1、I/O硬件电子专业的人关心的是硬件本身,他们看待输入输出设备是由芯片,导线,电源等等组成的一个硬件。计算机专业的人从操作系统的角度看待输入输出设备,他们关心的是如何对它们进行编程。也就是这个硬件接受得控制指令是什么,完成的功能是什么,返回结果是什么等等。
2015-01-28 09:22:16 3120
原创 学习C++——函数指针
函数指针指向的是函数而不是对象。bool length(const string &, const string &);如果要声明一个指向该函数的指针,只需要将指针替换函数名。bool (*pf)(const string &, const string &);如果没有*f两边():bool *pf(const string &, const string &);声明了一个名为pf的函
2015-01-27 22:30:49 324
原创 学习C++——返回类型
1、无返回值函数没有返回值的return 语句只能用在返回类型为void的函数中。返回类型为void的函数,不要求一定有return语句,因为这类函数的最后会自动隐式地执行return。2、有返回值函数只要函数的返回类型不是void,函数中的return语句必须返回一个值,返回类型相同或可以隐式地转换。值是如何被返回的返回的值用于初始化调用点的一个临时量,该临时量是
2015-01-27 19:41:32 2109
原创 学习C++——参数传递
参数传递1、传值参数(实参初始化形参)普通形参(int,char.....)指针形参(int * ,char *.....)2、传引用参数(引用是实参的别名)使用引用避免拷贝(尤其是比较大的类或者是容器对象)当不需要修改对象时,将其声明为常量引用。 bool isShorter(const string &str1, const string &str2
2015-01-26 22:14:31 524
原创 操作系统——存储管理(3)
5、覆盖技术引入覆盖技术的目的是想在较小的可用内存中运行较大的程序。它常用于多道程序系统,与分区存储管理配合使用。基本原理:把程序按照自身的逻辑结构,划分为若干个功能上相对独立的程序模块,那些不会同时执行的模块共享同一块内存区域,并且按照时间的先后顺序来运行。
2015-01-26 09:55:05 1455
原创 操作系统——存储管理(2)
4、页式和段式存储管理4.1页式存储管理为什么提出页式存储管理?分区存储管理方案的一个特点就是连续性,即系统对每个程序都分配一片连续的内存区域。这种连续性会导致碎片的问题。固定分区肯定会导致内碎片问题。可变分区会导致外碎片问题,即使可以通过内存紧缩技术来解决,但是合并碎片的时候需要花费大量的CPU时间。总之,无论是内碎片还是外碎片,它们的存在都降低了内存资源的使用效率。所以,为了解
2015-01-26 09:17:53 770
原创 NT式驱动的基本结构
1、NT式驱动的基本结构对于NT式驱动,主要的函数是DriverEntry例程、卸载例程以及各个IRP的派遣例程。1.1、驱动加载过程与驱动入口函数(DriverEntry)驱动程序有一个入口函数,也就是首先被执行的函数。这个函数通常被命名为DriverEntry,也可以指定另外的名字。函数原型: NTSTATUS DriverEntry( IN PDRIVER_OBJECT
2015-01-25 20:44:21 1128
原创 驱动程序的基本结构
1、Windows驱动程序中重要的数据结构数据结构是计算机程序的核心,I/O管理器定义了一些数据结构,这些数据结构是编写驱动程序时必须掌握的。驱动程序要经常创建和维护这些数据结构的实例。1.1驱动对象(DRIVER_OBJECT)每个驱动程序会有唯一一个驱动对象与它相对应,并且这个驱动对象是在驱动加载的时候,被内核中的对象管理程序所创建。驱动对象用DRIVER_OBJECT
2015-01-25 18:08:38 1385
原创 操作系统——存储管理(1)
1、简介计算机的工作方式归因于它的两个基本能力:一是存储程序,二是执行程序。存储程序依靠存储器来实现,执行程序依靠CPU来实现。计算机的工作原理就是从内存中取出指令然后放到CPU上执行。进程管理是对CPU资源的管理,存储管理就是对存储器资源的管理。通常所说的存储管理,主要是对内存的管理。早期的存储管理方法主要是:单道程序存储管理,分区存储管理,页式和段式存储管理以及覆盖与交换技术等。当前系
2015-01-23 22:53:00 2027
原创 Qt——查找对话框实例
1、源代码#ifndef FINDDIALOG_H#define FINDDIALOG_H#include //它是对话框的基类,从QWidget类中派生出来#include #include #include #include //接下来是四个类的前置声明class QCheckBox;class QLabel;class QLineEdit;class QPushB
2015-01-22 11:05:53 893
原创 Qt入门实例
1、显示“Hello Qt!”的QLabel窗口部件#include #include int main(int argc, char *argv[]){ QApplication a(argc, argv); QLabel *label = new QLabel("Hello Qt!"); label->show(); return a.exec();
2015-01-16 11:06:51 662
原创 学习C++——类的自动转换和强制类型转换
本程序主要的用法是: 1、类型转换函数的定义以及使用。 (double类型赋值给对象类型,此时构造函数可以实现; 对象类型赋值给double类型,此时用转换函数来实现。) 2、成员函数实现加法的重载。 3、友元函数实现加法的重载。
2015-01-13 11:22:53 730
原创 操作系统——进程管理(2)
一、进程间通信进程间通信(Inter-Process Communition,IPC)就是在进程之间的信息相互传递。现代操作系统一般都是多道程序技术,同时有多个进程运行,这些正在的进程有两种关系:一是相互独立,二是相互关联。问题:1、进程之间如何进行通信,也就是如何传递信息2、当两个或者多个进程访问共享资源的时候怎么保证可以进程顺利运行。3、当进程之间存在某种依赖关系的时候,如
2015-01-11 11:00:04 663
原创 学习C++——文本的输入cin
for、while、do while循环语句另外还有if和switch选择语句。另外重点是cin是如何处理字符输入的。一、字符串的比较1、C-风格的字符串的比较strcmp(word,"book");需要包含头文件;当word大于"book"时,结果大于0;2、string类字符串的比较str1 > str2; str1 str1 == str2; 直接用关系符来比较,st
2015-01-11 09:38:38 696
原创 学习C++——复合类型
一、数组声明数组的通用格式:数据类型 数组名字[数组元素个数]; 数组初始化:int cat[4] = {1,2,3,4};这种方式只能在声明数组的时候进行初始化赋值。这样也行,int cat[] = {1,2,3,4}; C++标准模板库(STL)提供了一种数组的替代品——模板类vector,而C++11新增了模板类array。二、字符串
2015-01-10 12:19:45 613
原创 学习C++——入门
一、例1#include int main(){ using namespace std;//using指令使得,std名称空间中的所有名称都可用 cout 输出信息,此时的cout相当于是std::cout cout 输出换行符,此时的endl相当于是std::endl cout << "What is your name ?" << endl; cin.get();//如
2015-01-10 09:49:03 299
原创 操作系统——进程管理(1)
一、进程1、什么是进程进程是一个正在运行的程序,一个进程至少要包括以下几个方面的内容:程序的代码,程序的数据,CPU寄存器中有关程序运行的数值,堆(为程序动态分配的内存空间),栈(保存运行时上下文信息,保存调用函数的形参和局部变量),进程占用的系统资源(比如打开的文件等等)。总之,进程包括了程序运行的所有状态信息。2、进程的特性动态性:进程是一个正在运行的程序,它的状态信息是在
2015-01-09 15:11:43 682
原创 操作系统——操作系统概述
一、操作系统的概念操作系统是在硬件和应用软件之间的一层专门的软件,它主要功能是管理计算机的资源,给上层的应用软件提供编程接口。二、操作系统的发展历史大致分为五个阶段第一个阶段:卡片式编程方法:程序的输入和输出,主要是通过纸带或卡片来完成。程序员在卡片上编写机器语言指令,即二进制0、1代码,然后交给计算机,输出结果也是以卡片的形式。缺点:1、程序员需要占用计算机所有资源,用户
2015-01-08 19:13:12 544
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人