自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

newyoung518的专栏

水滴终究石穿,南辕北辙终究可到达彼岸.

  • 博客(86)
  • 资源 (1)
  • 收藏
  • 关注

原创 好久没碰红黑树了吧?来,复习下吧!

小桂子是吧,看你简历上写着精通 java 编程,想必对 java 已经掌握的很好了吧?:系呀系呀,一直都用 java 写 bug 呢~:那你说说 jdk1.7 之前 HashMap 的底层实现原理呗,另外为什么在高并发场景下可能造成较高的 CPU 占用?:这个。。。好像是红黑树?:哦?你说的是 jdk1.8 之后的设计,既然你提到了,那就聊聊红黑树这个数据结构吧,这里是白纸和笔,手写一棵吧!:哎呀,哎呀哎呀,老师,突然肚子好疼,我要去一下厕所,一会儿就回来~~~面试处处是套路呀。。。

2023-08-17 16:30:12 81

原创 程序员当累了,带爱人出去广西北海旅游下吧

回旅店期待第二天,第二天早上我们五点半起床,简单梳洗一下,直奔五彩滩,住的远的有得骑电瓶车,人多得租的观光车,电瓶车基本到这种景点都会有当地老太婆跑出来收你五块钱停车费,给你们说个秘密,你如果不想给这五块可以提前直接扔路边就行了,岛上没人偷电瓶车,早上的五彩滩很冷,介意都带一件外套,还有就是石头很滑,很多人摔跤,包括我也摔了一跤,疼╯▂╰!环岛骑完感觉车儿要没电了,就准备回去换一个满电的,一回宿舍就不想动了,洗了澡,躺床上,我的脸哪叫一个疼,带了墨镜但是鼻子和脸颊通红,休息了一下,5点半直奔海鲜市场。

2023-08-17 16:24:15 113

原创 软件设计中,何为重构?

重构-让软件设计如虎添翼

2023-01-14 10:12:31 1733

原创 C/C++三种函数传参方式以及指针与引用小结

(1)传值,就是把你的变量的值传递给函数的形式参数,实际就是用变量的值来新生成一个形式参数,因而在函数里对形参的改变不会影响到函数外的变量的值。(2)传址,就是传变量的地址赋给函数里形式参数的指针,使指针指向真实的变量的地址,因为对指针所指地址的内容的改变能反映到函数外,也就是能改变函数外的变量的值。(3)传引用,实际是通过指针来实现的,能达到使用的效果如传址,可是使用方式如传值。说几点建议...

2019-12-23 00:04:53 1114 1

原创 C语言函数 传参以及指针与引用小结

C语言中函数参数传递的三种方式(1)传值,就是把你的变量的值传递给函数的形式参数,实际就是用变量的值来新生成一个形式参数,因而在函数里对形参的改变不会影响到函数外的变量的值。(2)传址,就是传变量的地址赋给函数里形式参数的指针,使指针指向真实的变量的地址,因为对指针所指地址的内容的改变能反映到函数外,也就是能改变函数外的变量的值。(3)传引用,实际是通过指针来实现的,能达到使用的效果如传址...

2019-12-22 23:59:57 2594 2

转载 STL的缺点

作者:姚冬链接:https://www.zhihu.com/question/20201972/answer/41324520来源:知乎著作权归作者所有,转载请联系作者获得授权。说几个STL的缺点吧,虽然都是在比较极端的情况下出现,但是对于一些大项目还是会遇到的1. 代码膨胀问题每一个实例化过的模板类,都会膨胀出一份独立的代码,比如std::vector, st

2017-10-12 10:49:22 801

转载 Qt的事件分发过程

看了篇文章,说先要子类化QEvent,然后定义自己的QEvent::Type,然后重写QWidget::event()函数,然后就可以调用QCoreApplication::sendEvent()或者QCoreApplication:;postEvent()发送事件就好了。但我比较笨,还是云山雾罩,不知道怎么下手。怎么子类化QEvent?在哪里定义自己的QEvent::Type?在哪里重写

2015-12-01 18:25:36 3067

转载 linux下面实现检测按键(Linux中kbhit()函数的实现)

在linux下面实现检测按键(Linux中kbhit()函数的实现)  #include #include #include #include #include #include  static struct termios initial_settings, new_settings;static int peek_character = -1;

2015-11-30 23:31:22 2753

转载 检测按键(Linux中kbhit()函数的实现)

我转载的网址来源http://hi.baidu.com/weihuili5/blog/item/3c9d1a012a84a30d738da527.html编写过MS-DOS程序的人通常都会查找Linux下等同于kbhit的函数,这个函数会检测一个按键是否被按下而并不实际的读取。不幸的是他们并没有找到这样的函数,因为并没有直接等同的函数。Unix程序员并不会注意到这个遗漏,因为Unix的编程方式

2015-11-30 23:28:51 3182

转载 Qt之JSON生成与解析

Qt之JSON生成与解析转载▼标签:qtqjsonqjsondocumentqjsonobjectqjsonarray分类:Qt   JSON(JavaScript ObjectNotation)是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition- Dec

2015-05-27 15:47:04 3701

转载 QT的通用算法

提供了一系列通用的模板函数,用于实现容器上的基本算法。注意:只是针对容器进行操作。1、          qFind()函数在容器中查找一个特定值。它包括两个参数,起始位置、终止位置和查找的字符串三个参数,如果被查找的元素存在,函数返回一个遍历器,否则则返回终止位置的遍历器。例子:QStringList list;list QStringList::iterator  i = 

2015-04-16 11:00:51 938

转载 一些静态查找算法

查找表(Search table)是由同一类型的数据元素(或记录)构成的集合。关键字(key)是数据元素中某个数据项的值,又称为键值,用它可以表示一个数据元素,也可以标识一个记录的数据项(字段),称之为关键码。若此关键字可以唯一地标识一个记录,则称此关键字为主关键字(primary key)。而对于那些可以识别多个数据元素(或记录)的关键字,称为次关键字(Secondary Key),次关键字也可

2015-04-02 11:53:57 570

转载 QT 容器

[+]QT不仅支持C++的STL模板库,同时自己也定义了一套容器类和与之操作的算法类,使用QT定义的这一套库,可以使在各个平台的表现相同。QT的这些容器被设计为更轻便,更安全和更容易使用。容器类是隐含共享(implicitly)的,可重入(reentrant)的和线程安全的。为容器遍历提供了两种迭代器(java-style,STL-style),并且QT提供了foreach关键字,更加方便元素

2015-02-13 16:37:17 613

转载 C++设计模式

目录(?)[+]一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模

2015-02-13 13:48:28 870

原创 关于在linux下搭建qt编译环境的那些事。

进入一个新的工作环境,难免会重头做写

2014-10-09 17:40:56 1064

原创 qt4.8到qt5.2windows版本的升级遇到的实际问题.

一、将某个QT4项目改成QT5遇到的问题       该Qt4项目以前是使用Qt4.7.4 MSVC2008开发的,因为使用到了OWC10(Office Web Components),使用MSVC编译器的话无法正常升级到Qt4.8.x和Qt5,于是将编译器转成了MinGW4.7,Qt升级到了4.8.4。今天Qt 5.0.1-MinGW预编译版本发布了,于是就拿它练手,将它升级到Qt5,以

2014-05-24 13:39:24 1837

转载 ubantu下安装qt

QT官方站点的文档有点老。今天,我尝试着在我的Ubuntu 13.10上安装Qt 5.2.0.下面是我的步骤:1. 下载Linux版本的Qt 5.2.0 view sourceprint?1.wget http://download.qt-project.org/official_releases/qt/5.2/5.2.0/qt-linux-opensource-5

2014-05-23 11:41:37 988

转载 gdb+gdbserver的方式进行ARM程序调试

gdb+gdbserver的方式进行ARM程序调试Sailor_forever  [email protected] 转载请注明http://blog.csdn.net/sailor_8318/archive/2008/04/16/2295583.aspx 【摘要】:本文首先介绍了gdb+gdbserver相关的概念,然后介绍了其下载、编译、安装等过程;接着介绍了利用gdb+

2014-05-07 23:45:01 844

转载 嵌入式环境下的gdb调试方法

采用GDB方法调试,由于嵌入式系统资源有限性,一般不能直接在目标系统上进行调试,通常采用gdb+gdbserver的方式进行调试。目标系统必须包括gdbserver程序,宿主机也必须安装gdb程序。在此我们还不能直接采用linux发行版自带的gdb,需要交叉编译gdb和gdbserver。一.前言嵌入式Linux系统中,应用开发过程中,很多情况下,用户需要对一个应用程序进行反复调试

2014-05-07 23:40:19 2306

转载 linux下的core 文件

浅析Linux下core文件当我们的程序崩溃时,内核有可能把该程序当前内存映射到core文件里,方便程序员找到程序出现问题的地方。最常出 现的,几乎所有C程序员都出现过的错误就是“段错误”了。也是最难查出问题原因的一个错误。下面我们就针对“段错误”来分析core文件的产生、以及我们 如何利用core文件找到出现崩溃的地方。何谓core文件当一个程序崩溃时,在进程当前工作目录

2014-05-07 23:28:06 585

转载 epoll

什么是epollepoll是什么?按照man手册的说法:是为处理大批量句柄而作了改进的poll。当然,这不是2.6内核才有的,它是在2.5.44内核中被引进的(epoll(4) is a new API introduced in Linux kernel 2.5.44),它几乎具备了之前所说的一切优点,被公认为Linux2.6下性能最好的多路I/O就绪通知方法。 epol

2014-05-01 19:53:25 494

转载 epoll

Linux I/O多路复用技术在比较多的TCP网络服务器中有使用,即比较多的用到select函数。Linux 2.6内核中有提高网络I/O性能的新方法,即epoll 。1、为什么select落后    首先,在Linux内核中,select所用到的FD_SET是有限的,即内核中有个参数__FD_SETSIZE定义了每个FD_SET的句柄个数,在我用的2.6.15-25-386内

2014-05-01 19:49:17 494

转载 qt鼠标的小例子

1、QMouseEvent中的坐标QMouseEvent中保存了两个坐标,一个是全局坐标,当然另外一个是局部坐标。全局坐标(globalPos())即是桌面屏幕坐标(screen coordinates),这个跟windows下的调用getCursorPos函数得到的结果一致。局部坐标(pos())即是相对当前active widget的坐标,左上角坐标为(0, 0)。补充一个

2014-04-30 12:55:39 554

转载 QT的事件系统

在Qt中,事件作为一个对象,继承自QEvent类,常见的有键盘事件QKeyEvent、鼠标事件QMouseEvent和定时器事件QTimerEvent等。以下内容主要讲解3个常见的事件,会涉及事件过滤器、自定义事件和随机数的知识。相关内容请各位亲在Qt帮助文档中查看The Event System关键字。事件是对各种应用程序需要知道的由应用程序内部或者外部产生的事情或者动作的通称。在Qt中

2014-04-30 12:52:30 875

转载 QT中的鼠标移动

Qt 中对鼠标事件进行处理,可以在QWidget的子类中继承 mouseMoveEvent()函数来实现。protected:void mouseMoveEvent(QMouseEvent * );在构造函数中,需要设置this->setMouseTracking(true);, 对鼠标移动进行跟踪,否则无法捕捉到鼠标移动事件。如果需要实现当鼠标移动到某个QWi

2014-04-30 12:48:39 3068

原创 登录oracle数据库时常用的操作命令整理

1、su – oracle 不是必需,适合于没有DBA密码时使用,可以不用密码来进入sqlplus界面。2、sqlplus /nolog 或sqlplus system/manager 或./sqlplus system/manager@ora9i;3、SQL>connect / as sysdba ;(as sysoper)或connect internal/orac

2014-04-29 22:09:07 529

转载 QT 简单的网络通信(tcp ,udp)

最近要用到Qt的Socket部分,网上关于这部分的资料都比较复杂,我在这总结一下,把Socket的主要部分提取出来,实现TCP和UDP的简单通信。1.UDP通信UDP没有特定的server端和client端,简单来说就是向特定的ip发送报文,因此我把它分为发送端和接收端。 注意:在.pro文件中要添加QT += network,否则无法使用Qt的网络功能。1.1.UDP发送

2014-04-29 15:34:11 2099 1

转载 linux 服务器socket的五种模型

一、五种I/O模型1、阻塞I/O我们在前面所说的I/O模型都是阻塞I/O,即调用recv系统调用,如果没有数据则阻塞等待,当数据到来则将数据从内核空间(套接口缓冲区)拷贝到用户空间(recv函数提供的buf),然后recv返回,进行数据处理。2、非阻塞I/O我们可以使用 fcntl(fd, F_SETFL, flag |

2014-03-28 00:24:04 587

转载 linux消息队列

下面来说说如何用不用消息队列来进行进程间的通信,消息队列与命名管道有很多相似之处。一、什么是消息队列消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。  每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。我们可以通过发送消息来避免命名管道的同步和阻塞问题。但是消息队列与命名管道一样,每个数据块都有一个最大长度的限制。Linux用宏

2014-02-20 21:19:51 533

转载 jffs2文件系统制作与移植(二)

1、下面我以fl2440开发板的256M的nandflash进行移植,内核中nandflash的分区表信息是这样的Creating 11 MTD partitions on "NAND":0x000000000000-0x000000100000 : "mtdblock0 u-boot 1MB"0x000000100000-0x000000500000 : "mtdblock1 k

2014-01-09 15:53:35 1670

转载 NFS文件系统制作与移植

1.NFS文件系统简介:NFS是由Sun开发并发展起来的一项在不同机器、不同操作系统之间通过网络共享文件的技术。在嵌入式Linux系统的开发调试阶段,可以利用该技术在主机上建立基于NFS 的根文件系统,挂载到嵌入式设备,可以很方便地修改根文件系统的内容。以上讨论的都是基于存储设备的文件系统(memory-based file system),它们都可用作Linux的

2014-01-09 15:41:37 1757

转载 ramdisk文件系统制作和移植

RAMDISK简介:Linux 中,rootfs 是必不可少的。PC 上主要实现有ramdisk和直接挂载 HD(Harddisk,硬盘)上的根文件系统;嵌入式中一般不从 HD 启动,而是从 Flash 启动,最简单的方法是将 rootfs load 到 RAM 的 RAMDisk,稍复杂的就是直接从Flash 读取的Cramfs,更复杂的是在Flash 上分区,并构建JFFS2等

2014-01-09 15:39:56 1173

转载 ubifs文件系统制作与移植

UBIFS文件系统使用1, UBIFS简介在linux-2.6.27以前,谈到Flash文件系统,大家很多时候多会想到cramfs、jffs2、yaffs2等文件系统。它们也都是基于文件系统+mtd+flash设备的架构。linux-2.6.27后,内核加入了一种新型的flash文件系统UBIFS(Unsorted Block Image File System

2014-01-09 15:31:07 1511

转载 map的概念和用法详解

std map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下std map内部数据的组织,std map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在std map内部所有

2013-11-14 15:51:49 1413

原创 socket中的select

使用select函数可以以非阻塞的方式和多个socket通信。程序只是演示select函数的使用,功能非常简单,即使某个连接关闭以后也不会修改当前连接数,连接数达到最大值后会终止程序。1. 程序使用了一个数组fd_A,通信开始后把需要通信的多个socket描述符都放入此数组。2. 首先生成一个叫sock_fd的socket描述符,用于监听端口。3. 将sock_fd和数

2013-10-09 17:45:48 616

转载 结构体指针的初始化

过了几天这位同事说他试了一下,结构体中的成员指针不经过初始化是可以用(左子树和右子树指针)那时在忙着整理文档,没在意今天抽空调了一下,结论是,还是需要初始化的。而且,不写代码你是不知道原因的(也许是对着电脑久了IQ和记性严重下跌吧)测试代码如下:#include #include #include struct student{  char *name;

2013-10-09 15:10:51 4379

转载 指针的初始化总结

1.    字符指针的初始化在c语言中 "string"保存的就是首个字符所在的地址  所以可以把 字符串常量"string" 赋值给指针 char *p;  p="string"  但不能把字符串常量直接赋给数组,需要用到 strcpy。  但可以对数组初始化为字符串,也就是字符数组。如  char str[] = "string";     两种初始化的区别:char * p=

2013-10-09 14:08:48 989

转载 ARM9 2410移植之ARM中断原理, 中断嵌套的误区,中断号的怎么来的

ARM有七种模式,我们这里只讨论SVC、IRQ和FIQ模式。     我们可以假设ARM核心有两根中断引脚(实际上是看不见的),一根叫 irq pin, 一根叫fiq pin.     在ARM的cpsr中,有一个I位和一个F位,分别用来禁止IRQ和FIQ的。     先不说中断控制器,只说ARM核心。正常情况下,ARM核都只是机械地随着pc的指示去做事情,当CPSR中的I和F位为1的

2013-10-08 11:29:51 598

翻译 基于UDP协议的网络程序 (学习)

下图是典型的UDP客户端/服务器通讯过程(该图出自[UNPv13e])。图 37.3. UDP通讯流程以下是简单的UDP服务器和客户端程序。/* server.c */#include #include #include #include "wrap.h"#define MAXLINE 80#define SERV_PORT 8000int m

2013-09-18 15:57:51 661

翻译 基于TCP协议的网络程序(基础学习)

下图是基于TCP协议的客户端/服务器程序的一般流程:图 37.2. TCP协议通讯流程服务器调用socket()、bind()、listen()完成初始化后,调用accept()阻塞等待,处于监听端口的状态,客户端调用socket()初始化后,调用connect()发出SYN段并阻塞等待服务器应答,服务器应答一个SYN-ACK段,客户端收到后从connect()返回,同时应

2013-09-18 15:56:03 788

C++23种设计模式.pdf

c++常用的设计模式,把C++中设计的23种方法都介绍的淋淋尽致,对以后C++的设计有很大帮助哦.

2013-02-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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