智能指针的模拟实现

1.引入int main() { int *p = new int; //裸指针 delete p; return 0; }在上面的代码中定义了一个裸指针p,需要我们手动释放。如果我们一不小心忘记释放这个指针或者在释放这个指针之前,发生一些异常,会造成严重的后果(内存泄...

2017-07-24 16:25:51

阅读数 1454

评论数 0

Linux I/O复用——select系统调用

Linux中I/O复用使得程序能够同时监听多个文件描述符,这对提高程序的性能至关重要。 Linux下实现I/O复用的系统调用主要有select、poll、epoll。 select系统调用 select的主要用途是:在一段时间内,监听用户感兴趣的文件描述符上的可读,可写和异常事件。1.sel...

2017-05-07 01:06:17

阅读数 391

评论数 0

总结

1.利用http的get方法加载本地网页 (1)QT += network 表明我们使用了网络模块。 (2在widget.ui文件中添加一个 Text Browser (3) //MainWindow.h#ifndef MAINWINDOW_H #define MAINWINDOW_H#...

2018-01-14 20:35:00

阅读数 92

评论数 0

近两周学习总结

<1>用了几天把高效c++看了一遍(下面主要整理了自己平时容易遗忘或者没有常用的知识点) 1. c++中的4中强制转换 (1)const_cast 只能对指针或者引用去除或者添加const属性,对于变量直接类型不能使用const_cast;不能用于不同类型之间的转换,只能改变同...

2017-12-24 00:33:38

阅读数 372

评论数 0

实习总结

这篇文章主要是总结一下自己在公司这一个月的学习情况。 1.首先先总结一下近两周的学习情况吧~~~ 这两周主要是熟悉了下公司的业务代码。(代码就先不贴出来了)。在此次学习中,学习的新知识: (1)adb的一些基本命令(只列举学习中过程中遇到的命令) a. adb shell : 进入adbs...

2017-12-07 21:51:01

阅读数 1169

评论数 0

QT+VS2013环境的搭建及配置

这篇博客就对自己第一周所学的知识进行一个总结。 (1)软件的安装 1. 安装vs2013 进入vs官网,下载VS安装包,进入傻瓜式安装。 2.安装QT 进入 qt官方网站,下载qt安装包,进入安装 我安装的时候安装的是mvc2013, qt版本要vs的版本保持一致。 下...

2017-11-19 14:49:56

阅读数 368

评论数 0

二分查找

二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。二分查找的基本思想是将n个元素分成大致相等的两部分,取a[n/2]与x做比较,如果x=a[n/2],则找到x,算法中止;如果xclas...

2017-08-11 18:03:46

阅读数 156

评论数 0

每天几道面(笔)试题

1.两个栈实现一个队列、两个队列实现一个栈//两个队列实现一个队列 class Solution { public: void push(int node) { stack1.push(node); } int pop() { ...

2017-08-11 10:23:12

阅读数 184

评论数 0

每天几道编程题

1.在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。/* 这个二维数组是有序的从左向右看递增,从上到下递增 从左下角开始查询,比他大的右移,比它小的上移 */ class Solu...

2017-08-02 18:09:55

阅读数 166

评论数 0

每天几道笔(面)试题

分析下面代码有什么问题? (1)void test1() { char string[10]; char* str1 = "0123456789"; strcpy( string, str1 ); }解答:st1r长度为11个字节,需要11个字节的大小...

2017-07-31 00:05:18

阅读数 216

评论数 0

常用排序的实现及比较

排序的稳定性:假设在待排序的序列中存在多个相同关键字的记录,经过排序,这些关键字的位置保持不变,则称这个排序算法是稳定的,否则是不稳定的。 1. 选择排序(不稳定) 选择排序是一种直观的排序算法,每次找到最大的或者最小的数与,存放在序列的起始元素,知道所有的元素都排序结束。选择排序是不稳定的,...

2017-07-30 19:01:15

阅读数 166

评论数 0

TCP的拥塞控制

目的 拥塞控制:当一个网络中数据一次性发太多时,为了避免由于数据太多而造成网络链路或者路由器过载。 解决的方法 慢启动、拥塞避免 快速重传、快速恢复 (1)慢启动 首先先给发送方设置一个“拥塞窗口”的变量,这个变量和接收端的接受窗口共同决定了发送者的发送窗口。 为了避免一次将所有数据都...

2017-07-19 14:55:33

阅读数 277

评论数 0

c++设计模式—观察者模式

Observer模式(观察者模式)应该可以说是应用最多、影响最广的模式之一。因为 Observer 的一个实例 Model/View/Control( MVC) 结构在系统开发架构设计中有着很重要的地位和意义, MVC实现了业务逻辑和表示层的解耦。在 MFC 中, Doc/View(文档视图结构)...

2017-07-13 23:43:27

阅读数 250

评论数 0

c++设计模式之单例模式

单例模式概念 单例模式事比较常用的设计模式之一。一般情况下,我们建立的一些类是属于工具性质的,基本不用存储太多的跟自身有关的数据,在这种情况下,每次都去new一个对象,即增加了开销,也使得代码更加臃肿。其实,我们只需要一个实例对象就可以。如果采用全局或者静态变量的方式,会影响封装性,难以保证别...

2017-07-13 17:26:19

阅读数 277

评论数 0

数组和指针的区别,数组和引用的区别

数组和指针的区别 (1)定义 数组是一个符号,不是变量,因而没有自己对应的存储空间。但是,指针是一个变量,里面存储的内容是另外一个变量的地址,因为是变量所以指针有自己的内存空间,只不过里面存储的内容比较特殊。 (2)区别 a.对于声明和定义,指针和数组是不相同的,定义为数组,则声明也应该...

2017-07-05 23:47:29

阅读数 243

评论数 0

进程和线程的区别

概念 进程:正在运行中的程序。 线程:进程中的一条执行路径。 2.区别 (1)通常在一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源。在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。 (2)线程和进程的区别在于,子进程和父...

2017-07-04 20:50:59

阅读数 203

评论数 0

单例模式(c++实现)

什么叫单例模式? 单例模式也称为单件模式、单子模式,可能是使用最广泛的设计模式。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很多地方需要这样的功能模块,如系统的日志输出,GUI应用必须是单鼠标,MODEM的联接需要一条且只需要一条电话线,操作系统只...

2017-07-02 23:46:24

阅读数 224

评论数 0

带头单链表的实现(嵌套类的实现)

链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,链表比较方...

2017-07-02 22:46:53

阅读数 584

评论数 0

内核态、用户态的切换

内核态、用户态的概念 内核态:执行内核代码的状态 用户态:执行用户代码的状态 什么时候用户态会切到内核态? 《1》系统调用时 例如调用fork、open等系统函数时。 《2》发生异常时 例如缺页异常。当cpu执行运行在用户态的程序时,发生了一些事先不可知的异常。 《3》外设产生中断 ...

2017-06-28 23:33:00

阅读数 281

评论数 0

gcc和g++的区别

一、区别 1. gcc是GCC中的c编译器 g++是GCC中的c++编译器 2. 对于后缀为.c的文件,gcc当成c文件处理,而g++当成c++处理 对于后缀为.cpp的文件,两者都当成.cpp文件处理 3. 在编译阶段,g++会自动链接STL库,而gcc必须要...

2017-06-28 23:14:40

阅读数 254

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭