自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(76)
  • 收藏
  • 关注

转载 值得推荐的C/C++框架和库 (真的很强大)

值得学习的C语言开源项目- 1. WebbenchWebbench是一个在Linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。下载链接:http://home.tiscali

2017-03-12 16:48:29 846

转载 Linux中使用VS Code编译调试C++项目详解

最近因为项目的需求,需要在Linux下开发C++相关项目,经过一番摸索最终实现了,下面这篇文章就给大家简单总结了一下如何通过VS Code进行编译调试的一些注意事项。有需要的朋友们可以参考借鉴,下面来跟着小编一起看看吧。前言关于VS Code在Linux下的安装这里就不提了,不管是CentOS还是Ubuntu,如果不懂且搜问题足够的情况下,你会解决的。一、前

2017-03-12 16:28:03 7875

转载 伸展树 自底向上 自顶向下

伸展树(Splay Tree)是一种二叉排序树,它能在O(log n)内完成插入、查找和删除操作。它由Daniel Sleator和Robert Tarjan创造。它的优势在于不需要记录用于平衡树的冗余信息。在伸展树上的一般操作都基于伸展操作。 为什么需要伸展树(Splay Tree) 各种查找树存在不足。比如:对于一个有n个节点的平衡树,虽然最坏情况下每次查找的时间复杂度不会超过O(

2017-03-02 11:54:04 1410

转载 runas 命令的使用及RUNAS自动输入密码的方法

在win2k中,开始→程序→附件 ,找到计算器,按住shift键,点右键,选择“运行方式 ...”,这时候,会弹出对话框,询问你要使用哪个用户身份来运行该程序 。不知道大家是否使用过win2k的这个功能,如果大家是使用win2k的英文版本的话,在按住shift后选择的就不是“运行方式 ...”而是“runas...”,也就是今天要讲的这个命令。在cmd中输入runas,会得到帮助,今天,我

2017-02-06 12:29:33 55904 2

原创 IPC$命令详解

一 摘要二 什么是ipc$三 什么是空会话四 空会话可以做什么五 ipc$所使用的端口六 ipc管道在hack攻击中的意义七 ipc$连接失败的常见原因八 复制文件失败的原因九 关于at命令和xp对ipc$的限制十 如何打开目标的IPC$共享以及其他共享十一 一些需要shell才能完成的命令十二 入侵中可能会用到的命令十三 对比过去和现今的ipc$入

2017-02-06 10:16:12 27607 3

原创 CMD命令

一,ping     它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:网络上的机器都有唯一确定的IP地址,我们给目标IP地址发送一个数据包,对方就要返回一个同样大小的数据包,根据返回的数据包我们可以确定目标主机的存在,可以初步判断目标主机的操作系统等。下面就来看看它的一些常用的操作。先看

2017-02-06 08:59:15 482

转载 linux常用命令的英文单词缩写

命令缩写:ls:list(列出目录内容)cd:Change Directory(改变目录)su:switch user 切换用户rpm:redhat package manager 红帽子打包管理器pwd:print work directory 打印当前目录 显示出当前工作目录的绝对路径ps: process status(进程状态,类似于windows的任务管

2017-01-03 20:34:23 699

翻译 C++中的Lambda表达式详解

一直都在提醒自己,我是搞C++的;但是当C++11出来这么长时间了,我却没有跟着队伍走,发现很对不起自己的身份,也还好,发现自己也有段时间没有写C++代码了。今天看到了C++中的Lambda表达式,虽然用过C#的,但是C++的,一直没有用,也不知道怎么用,就可怜的连Lambda语法都看不懂。好了,这里就对C++中的Lambda进行一个简单的总结,就算是对自己的一个交代,我是搞C++的,我是一个C+

2016-12-14 09:49:18 39330 16

转载 C++中的单例模式

单例模式也称为单件模式、单子模式,可能是使用最广泛的设计模式。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很多地方需要这样的功能模块,如系统的日志输出,GUI应用必须是单鼠标,MODEM的联接需要一条且只需要一条电话线,操作系统只能有一个窗口管理器,一台PC连一个键盘。       单例模式有许多种实现方法,在C++中,甚至可以直接用一个全局变量做

2016-11-15 17:24:23 530

转载 C++11新特性学习笔记

第一部分:核心语言的特性一. 右值引用,move语义,完美转发1. 左值(lvalue)和右值(rvalue)的概念c++11引入一种新式引用,名曰右值引用,语法:Type&& , const Type&&,区别于之前的&标示的左值引用。为理解右值引用,先要理解左值和右值的概念。左值,在表达式中,表达式结束时候不会消失,如:obj , *ptr , ptr[in

2016-11-14 21:10:47 398

原创 C++11 标准新特性: 右值引用与转移语义

新特性的目的右值引用 (Rvalue Referene) 是 C++ 新标准 (C++11, 11 代表 2011 年 ) 中引入的新特性 , 它实现了转移语义 (Move Sementics) 和精确传递 (Perfect Forwarding)。它的主要目的有两个方面:消除两个对象交互时不必要的对象拷贝,节省运算存储资源,提高效率。能够更简洁明确地定义泛型函数。

2016-11-14 17:02:07 679

转载 《UNIX网络编程 卷一:套接字联网API》第一至六章学习笔记

第二章 传输层:TCP和UDP用户数据包协议UDP      用UDP进行网络编程所碰到的问题是缺乏可靠性,我们也称UDP提供无连接的(connectionless)服务,因为UDP客户与服务器不必存在长期的关系.传输控制协议TCP      TCP提供客户与服务器的连接.一个TCP客户建立与一个给定服务器的连接,并跨该连接与对应服务器交换数据,然后终止连接;T

2016-10-28 11:13:26 922

转载 《计算机网络(谢希仁)》之网络层和运输层等章节学习笔记

笔记说明:本笔记是从编程的角度来写的,即内容是我认为对编程有帮助的东西,而不是从一个网络专业知识的角度来写的.下图表示的是计算机的体系结构的不同划分对比:OSI的七层协议体系结构、TCP/IP的体系结构和五层协议的体系结构:下图说明的是应用进程的数据在各个层的传递过程中所经历的变化下图是TCP/IP协议的表示方法距离.注意的是路由器在转发分组时最高只用到网络层而

2016-10-28 10:49:17 1464

转载 C++异常第二篇---C++标准库异常类exception的使用

1 继承图示 2 具体讲解 C++标准库异常类继承层次中的根类为exception,其定义在exception头文件中,它是C++标准库所有函数抛出异常的基类,exception的接口定义如下:namespace std {         class exception {         public:                

2016-10-27 14:31:52 1390

转载 C++异常(exception)第一篇--综合讲解

摘要:catch(exception &ex)是捕获所有标准库定义中的类std:exception;catch(...)则是捕获所有的异常。1.简介   异常是由语言提供的运行时刻错误处理的一种方式。提到错误处理,即使不提到异常,你大概也已经有了丰富的经验,但是为了可以清楚的看到异常的好处,我们还是不妨来回顾一下常用的以及不常用的错误处理方式。C

2016-10-27 14:30:44 904

转载 C++ 内存池 -- C++ Memory Pool

这是我翻译的文章,来自 Code Project,原文作者: DanDanger2000. 原文链接: http://www.codeproject.com/cpp/MemoryPool.aspC++ 内存池l  下载示例工程 – 105Kbl  下载源代码 – 17.3Kb目录l 引言l 它怎样工作

2016-10-26 10:24:44 306

转载 C++11智能指针之unique_ptr

1. 智能指针概念智能指针是基于RAII机制实现的类(模板),具有指针的行为(重载了operator*与operator->操作符),可以“智能”地销毁其所指对象。C++11中有unique_ptr、shared_ptr与weak_ptr等智能指针,可以对动态资源进行管理2. unique_ptr概念unique_ptr“唯一”拥有其所指对象,同一时

2016-10-26 10:09:46 300

原创 C++11特性:decltype关键字

decltype简介我们之前使用的typeid运算符来查询一个变量的类型,这种类型查询在运行时进行。RTTI机制为每一个类型产生一个type_info类型的数据,而typeid查询返回的变量相应type_info数据,通过name成员函数返回类型的名称。同时在C++11中typeid还提供了hash_code这个成员函数,用于返回类型的唯一哈希值。RTTI会导致运行时效率降低,且在泛型编程

2016-10-26 10:08:41 283

转载 c++11改进我们的程序之垃圾回收

c#和java中有自动垃圾回收机制,.net运行时和java虚拟机可以管理分配的堆内存,在对象失去引用时自动回收,因此在c#和jva中, 内存管理不是大问题。c++语言没有垃圾回收机制,必须自己去释放分配的堆内存,否则就会内存泄露。  我相信大部分c++开发人员都遇到过内存泄露的问题,而查找内存泄露的问题往往要花大量的精力。要解决这个让人头疼的问题可 以采取一些办法,最有效的办法是使用

2016-10-25 21:02:46 344

原创 智能指针auto_ptr详解

1. 智能指针auto_ptr的引入auto_ptr是C++标准库中的智能指针模板类,头文件auto_ptr的出现,主要是为了解决“有异常抛出时发生内存泄漏”的问题。如下的简单代码是这类问题的一个简单示例。int* p = new int(100);try{ doSomething(); cout endl; delete p;}c

2016-10-25 09:08:27 1089

原创 C++ 内存分配allocator类

new有一些灵活性的局限,其中一方面表现在它将内存分配和对象构造组合在了一起。类似的,delete将对象析构和内存释放组合在了一起。我们分配单个对象时,通常希望将内存分配和对象初始化组合在一起。因为在这种情况下,我们几乎肯定知道对象应有什么值。当分配一大块内存时,我们通常计划在这块内存上按需构造对象。在此情况下,我们希望将内存分配和对象构造分离。这意味着我们可以分配大块内存,但只在真正需要

2016-10-24 17:41:56 5835 2

原创 有关TinyXML使用的简单总结:来解析XML数据

这次使用了TinyXML后,觉得这个东西真是不错,于是将使用方法坐下总结来和大家分享。    该解析库在开源网站(http://sourceforge.net )上有下载,在本Blog也提供下载(下载TinyXML)    TinyXML是一个开源的解析XML的解析库,能够用于C++,能够在Windows或Linux中编译。这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从

2016-10-24 13:37:31 2344 2

原创 istringstream、ostringstream、stringstream 类介绍

0、C++的输入输出分为三种:(1)基于控制台的I/O    (2)基于文件的I/O        (3)基于字符串的I/O          1、头文件[cpp] view plaincopyprint?#include   2、作用istringstream类用于执行C++风格的字符串流的输入操

2016-10-20 17:31:08 221

原创 iostream流库

在C++的iostream流库中,存在着两个基本部分。分别是:    1. 流:C++把输入和输出看作字节流。输入时,程序从输出流中抽取字节;输出时,程序将字节插入到输出流中。流充当了程序和流源或者流目标之间的桥梁。    2. 缓冲区:缓冲区是用作中介的内存块,它是将信息从设备传输到程序或者从程序传输到设备的临时存储工具,用以匹配程序和设备之间速度的差距。从设计上说,增加了缓冲区

2016-10-16 11:17:32 485

原创 C++标准库IO

C++标准库 之 iostream库的学习笔记(一)iostream库的介绍和istream,ostream类以及cin,cout对象c语言的标准输入输出库是stdio.h  是一个函数库而不是类库。其中包括了我们最常使用的scanf  printf  都是一些独立的全局函数,因为C语言是不支持类的。c++的标准输入输出库iostream 是一个类库,以类的形式组织,使用该

2016-10-14 11:06:29 468

转载 C++中SYSTEM的用法

曾经的曾经,被system()函数折磨过,之所以这样,是因为对system()函数了解不够深入。只是简单的知道用这个函数执行一个系统命令,这远远不够,它的返回值、它所执行命令的返回值以及命令执行失败原因如何定位,这才是重点。当初因为这个函数风险较多,故抛弃不用,改用其他的方法。这里先不说我用了什么方法,这里必须要搞懂system()函数,因为还是有很多人用了system()函数,有时你不得不面对它

2016-10-09 21:18:50 29362

原创 字符串基本操作集锦

字符串基本操作集锦所有C语言标准库支持的字符串操作都在string.h中,这个文件在/usr/include/下。确切的说,这个文件还包含对数组的访问。所包含的函数分为以下几类:复制、连接、比较、查找等。Table of Contents1 复制2 连接3 比较4 查找5 其他函数6 strtok函数的实现1 复制

2016-10-09 17:32:09 1575

转载 strtok函数的使用注意事项

版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]strtok函数的使用注意事项1. 函数原型及其基本应用    strtok函数是用来分解字符串的,其原型是:[cpp] view plain copychar *strtok(char str[], const

2016-10-09 17:28:16 1578

原创 C语言标准库(了解)

[+]概述      C语言函数手册也称为C标准库。C标准库由在15个头文件中声明的函数、类型定义和宏组成,每个头文件都代表了一定范围的编程功能。有人说,C标准库可以分为 3 组,如何正确并熟练的使用它们,可以相应的可区分出 3 个层次的程序员:合格程序员:、、、熟练程序员:、、、优秀程序员:、、、、、、一,里的数学计算公式介绍    

2016-10-09 16:29:30 7410

转载 Standard C 语言标准函数库速查 (Cheat Sheet)

Standard C 语言标准函数库速查 (Cheat Sheet)tmpnam 函数说明函数名: tmpnam 功  能: 创建一个唯一的文件名 用  法: char *tmpnam(char *sptr); 程序例: #include  int main(void) {    char name[13];    tmpna

2016-10-08 15:17:35 1620

翻译 浮点数环境 cfenv(fenv.h)

在编写高精度浮点运算程序时,需要对浮点环境进行控制并捕获浮点环境异常。cfenv头文件定义了对浮点环境控制及异常相关的函数和宏。注记  FENV_ACCESS#pragma STDC FENV_ACCESS on //设置该参数表示可以访问浮点运算异常的状态值#pragma STDC FENV_ACCESS off //设置该参数表示禁止访问浮点运算异常的状态值

2016-09-30 10:32:53 1004

原创 istream_iterator、ostream_iterator 使用初探

标准程序库定义有供输入及输出用的iostream iterator类,称为istream_iterator和ostream_iterator,分别支持单一型别的元素读取和写入。使用这两个iteratorclasses之前,先得含入iterator头文件:#include现在让我们看看如何利用istream_iterator从标准输人装置中读取字符串。就像所有的iterators一样我们

2016-09-27 11:14:35 381

转载 Effective BCB Form Program(2) ――窗体事件驱动链引发程序错误.

二、由程序员用new的方法创建的窗体事件驱动链在程序中无数次地见到过以下代码:TfrmConstant *pForm=new TfrmConstant(this); //创建一个窗体  pForm->Show();  ……  delete pForm;我们经常需要动态创建一个Form,再显示它,然后在合适的地方销毁它。请注意上面代码中的thi

2016-09-20 14:49:27 64

转载 Effective BCB Form Program(1) ——窗体事件驱动链引发程序错误分析

BCB中采用的类库是VCL,其编程框架是事件驱动的,类似于VB。我在开发过程中发现,如果不对BCB的事件驱动链进行分析,写的程序会带有很多的错误,健壮性很成问题,而且调试很麻烦。我发现程序中的很多错误都来源于C++的指针操作。在程序中用new的方法创建了一个对象,然后delete这个对象之后,如果此时还有其它指针指向这个对象,访问此对象信息的代码必定会引发异常。这在C++中是常识性的问题。但这

2016-09-20 14:45:55 294

原创 数组名a和&a的区别

这里我们先看看数组名代表的是什么,这个概念可能大家有所误解,认为数组名代表的就是数组的地址,当然,数组名代表的是一个地址,但是关键是,通过这个地址,我们关注的是它能取得多大空间的数据的值,例如对于一个char 类型的地址,我们能够取得一个字节的值,对于一个int型的地址,我们能够取得4个字节的值。    这里我们以整形数组为讲解:int  a[4];   a是一个地址,我们知道a其

2016-09-20 09:02:09 330

原创 模板的全特化与偏特化

模板为什么要特化,因为编译器认为,对于特定的类型,如果你能对某一功能更好的实现,那么就该听你的。模板分为类模板与函数模板,特化分为全特化与偏特化。全特化就是限定死模板实现的具体类型,偏特化就是如果这个模板有多个类型,那么只限定其中的一部分。先看类模板:[cpp] view plain copytemplatetypename 

2016-09-17 15:35:02 209

转载 C++ 对象的内存布局(下)

版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[-]重复继承钻石型多重虚拟继承结束语  C++ 对象的内存布局(下) 陈皓http://blog.csdn.net/haoel  <<<点击这里查看上篇 重复继承 下面我们再来看看,发生重复继承的情况。所谓重复继承,也就是某个基类被间接地重复继承了多次。 

2016-09-14 21:29:00 134

转载 C++ 对象的内存布局(上)

版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[-]前言对象的影响因素知识复习单一的一般继承多重继承C++ 对象的内存布局(上) 陈皓http://blog.csdn.net/haoel  点击这里查看下篇>>>前言 07年12月,我写了一篇《C++虚函数表解析》的文章,引起了大家的兴趣。有很多朋友对我的文章留了言,有

2016-09-14 21:28:23 147

转载 C++ 虚函数表解析

版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[-]前言虚函数表一般继承无虚函数覆盖一般继承有虚函数覆盖多重继承无虚函数覆盖多重继承有虚函数覆盖安全性结束语附录一VC中查看虚函数表附录 二例程C++ 虚函数表解析 陈皓http://blog.csdn.net/haoel  前言 C++中的虚函数的作用主要是实现了多态的

2016-09-14 20:57:43 129

转载 C++:STL标准入门汇总

第一部分:(参考百度百科) 一、STL简介STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。现在虽说它主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间。 

2016-09-07 09:19:22 497

空空如也

空空如也

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

TA关注的人

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