自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 免费赠与c/c++海量视频 学习资料的

如果有需要c/c++海量视频 学习资料的可以试试以下方法(和朋友自己业余搞的公众号,目前处于推广时期):微信关注  “金喜鹊论文发表” 账号,公众号中也有c/c++视频 ,大家也可以 输入  程序 或者 资料, 即可获取 海量的c/c++资料。关注后,输入  2013 , 之后就会回复  visual studio 2

2015-11-18 23:15:52 531

原创 免费获取 visual studio 2013正版安装软件

如果有需要visual studio 2013安装软件的可以试试以下方法(和朋友自己业余搞的公众号,目前处于推广时期):微信关注  “金喜鹊论文发表” 账号,关注后,输入  2013 , 之后就会回复  visual studio 2013 安装软件的百度云链接和密码。公众号中也有c/c++视频 ,大家也可以 输入  程序 或者 资料, 即可获取 海量的c/c++资

2015-11-18 23:13:33 1204

转载 白话经典算法系列之五 归并排序的实现

归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。[cpp] view plaincopy

2015-11-26 00:24:34 407

转载 简单Linux C线程池

大多数的网络服务器,包括Web服务器都具有一个特点,就是单位时间内必须处理数目巨大的连接请求,但是处理时间却是比较短的。在传统的多线程服务器模型中是这样实现的:一旦有个请求到达,就创建一个新的线程,由该线程执行任务,任务执行完毕之后,线程就退出。这就是"即时创建,即时销毁"的策略。尽管与创建进程相比,创建线程的时间已经大大的缩短,但是如果提交给线程的任务是执行时间较短,而且执行次数非常频繁,那么服

2015-11-21 17:34:30 358

原创 脚本之家的好网址: 首页 >> 软件编程 >> C 语言

推荐一个不错的学习网址:http://www.jb51.net/list/list_159_1.htm放在CSDN 与大家共享!

2015-11-21 14:38:12 608

转载 c++实现简单的线程池

这里给大家介绍了C++中对于pthread线程的一个简单应用以及使用继承CDoit,实现其中的start和end,有需要的小伙伴可以参考下这是对pthread线程的一个简单应用1.      实现了线程池的概念,线程可以重复使用。2.      对信号量,互斥锁等进行封装,业务处理函数中只需写和业务相关的代码。3.      移植性好。如果想把这

2015-11-21 14:35:22 849

转载 深入解析C++ STL中的常用容器

这里我们不涉及容器的基本操作之类,只是要讨论一下各个容器其各自的特点。STL中的常用容器包括:顺序性容器(vector、deque、list)、关联容器(map、set)、容器适配器(queue、stac)STL是C/C++开发中一个非常重要的模板,而其中定义的各种容器也是非常方便我们大家使用。下面,我们就浅谈某些常用的容器。这里我们不涉及容器的基本操作之类,只是要

2015-11-21 14:32:42 9733 1

转载 C++设计模式之组合模式

这篇文章主要介绍了C++设计模式之组合模式,本文讲解什么是组合模式、组合模式的优点、组合模式实例等内容,需要的朋友可以参考下问题描述上图,是一个公司的组织结构图,总部下面有多个子公司,同时总部也有各个部门,子公司下面有多个部门。如果对这样的公司开发一个OA系统,作为程序员的你,如何设计这个OA系统呢?先不说如何设计实现,接着往下看,看完了下面的内容,

2015-11-21 14:24:22 442

转载 C++设计模式之外观模式

这篇文章主要介绍了C++设计模式之外观模式,本文详细讲解了C++中的Facade模式,并给出了实例代码,需要的朋友可以参考下前言在实际开发时,面对一个大的系统,总是会将一个大的系统分成若干个子系统,等子系统完成之后,再分别调用对应的子系统来完成对应的整体功能,这样有利于降低系统的复杂性;最终进行实现某个具体的功能时,我们将对应的子系统进行组合就好了;但是,子

2015-11-21 14:23:14 328

转载 C++设计模式之建造者模式

这篇文章主要介绍了C++设计模式之建造者模式,一个复杂对象是由多个部件组成的,建造者模式是把复杂对象的创建和部件的创建分别开来,分别用Builder类和Director类来表示,需要的朋友可以参考下建造者模式在GOF的《设计模式 可复用面向对象软件的基础》中是这样说的:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。这句话,

2015-11-21 14:22:25 392

转载 C++设计模式之抽象工厂模式

这篇文章主要介绍了C++设计模式之抽象工厂模式,本文要讲的抽象工厂模式,就是工厂方法模式的扩展和延伸,需要的朋友可以参考下问题描述之前讲到了C++设计模式——工厂方法模式,我们可能会想到,后期产品会越来越多了,建立的工厂也会越来越多,工厂进行了增长,工厂变的凌乱而难于管理;由于工厂方法模式创建的对象都是继承于Product的,所以工厂方法模式中,每个工厂只能

2015-11-21 14:20:26 342

转载 C++设计模式之桥接模式

这篇文章主要介绍了C++设计模式之桥接模式,本文讲解了什么是桥接模式、为什么要使用桥接模式、什么时候使用桥接模式等内容,需要的朋友可以参考下问题描述现在要去画一个图形,图形有长方形、圆形和扇形等等;而图形又可以加上不同的颜色,然后,我们就可以画出红色的长方形,绿色的长方形;红色的圆形,绿色的圆形等等。而这种图形的形状在变化,图形的颜色也在变化,当使用

2015-11-21 14:19:17 364

转载 C++设计模式之备忘录模式

这篇文章主要介绍了C++设计模式之备忘录模式,本文讲解了什么是备忘录模式、备忘录模式的UML类图、备忘录模式的使用场合等内容,需要的朋友可以参考下前言又到年底了,也静不下心来写代码了,大家都很浮躁;翻出经典的《仙剑奇侠传》玩一会;又要打大BOSS,先存一下档吧。这是我的习惯,在打大BOSS之前,都要先存一下档,要是打赢了,就再存一个档,覆盖之前的;如果打输了

2015-11-21 14:17:04 380

转载 #pragma once

概述编辑简单来讲,就是将#pragma once放在程序的头文件前面后,能够确保该头文件只编译一次。如果跨平台,则尽量使用, #ifndef __X_X_H__如果不是跨平台,则可以使用#pragma  once这是一个比较常用的C/C++杂注,只要在头文件的最开始加入这条杂注,就能够保证头文件只被编译一次。#pragma once是编译器相关的

2015-11-21 11:05:24 535

转载 c++通用模板类(template class)定义实现详细介绍

有时,有两个或多个类,其功能是相同的,仅仅是数据类型不同,如下面语句声明了一个类:class Compare_int { public : Compare(int a,int b) { x=a; y=b; } int max( ) { return (x>y)?x:y; } int min( ) { return (x&...有时,有两个或多个类,其功能是相同的,仅仅是数据类型

2015-11-20 11:11:08 19902 1

转载 Linux下获取线程TID的方法——gettid() 获取进程 getpid()

如何获取进程的PID(process ID)?可以使用:#include   pid_t getpid(void);  通过查看头文件说明,可以得到更详细的信息:find /usr/include -name unistd.h    /usr/include/asm/unistd.h  /usr/include/bits/un

2015-11-19 20:36:44 13528

原创 GTK中创建线程函数g_thread_new和g_thread_create的区别

使用GThread函数,需要引用glib.h头文件。这两个接口的核心区别就是  g_thread_create 是旧的接口,现在已经不使用了,而g_thread_new是新的接口,建议使用。g_thread_create:g_thread_create has been deprecated since version 2.32 and should not be used in 

2015-11-19 20:09:10 8436

转载 TCP协议中的三次握手和四次挥手(图解)

建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示:先来看看如何建立连接的。首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。那如何断开连接呢?简单的过程如下:

2015-11-19 14:21:06 394

原创 各种算法动画展示,效果不错。

各种算法动画展示:http://www.yxqzzx.cn/teacher/ShowArticle.asp?ArticleID=417

2015-11-18 16:07:28 2352

转载 QuickSort排序

高快省的排序算法有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名字是不是就觉得很高端呢。假设我们现在对“6  1  2 7  9  3  4  5 10  8”这个10个数进行排序。首先在这个序列中随便找一个数作为基准数(不要被这个名词吓到了,就是一个用来参照的数,待会你就知道它用来做啥的了)。为了方便,就让第一个数6作为基准数吧。接下来,需要将这个序列

2015-11-17 10:20:49 322

转载 vector容器

vector是同一种类型的对象的集合,每个对象都有一个对应的整数索引值。和string对象一样,标准库负责管理存储元素的相关内存。我们把vector称为容器,是因为它可以包含其他对象。一个容器中的所有对象都必须是同一种类型的。使用vector之前,必须包含相应的头文件。#include using std::vector;vector是一个类模板(class templ

2015-11-12 16:14:53 299

原创 C++中的强制类型转换

关于强制类型转换的问题,很多书都讨论过,写的最详细的是C++ 之父的《C++ 的设计和演化》。最好的解决方法就是不要使用C风格的强制类型转换,而是使用标准C++的类型转换符:static_cast, dynamic_cast。标准C++中有四个类型转换符:static_cast、dynamic_cast、reinterpret_cast、和const_cast。下面对它们一一进行介绍。

2015-11-09 09:15:29 336

转载 如何正确释放Vector的内存

有人提出了一个对于Vector内存泄露的疑问( Link)。采用 Vector存储一些数据,但是发现在执行 clear() 之后内存并没有释放,于是怀疑产生了内存泄露。随后有人回复:“vector 的 clear 不影响 capacity , 你应该 swap 一个空的 vector。”开始并不知道回复者在说什么,于是在谷歌上搜索 vector swap clear

2015-11-06 17:27:01 4639

转载 STL vector用法介绍

介绍这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作。本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用。通过阅读这篇文章读者应该能够有效地使用vector容器,而且应该不会再去使用C类型的动态数组了。 Vector总览vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种

2015-11-06 16:05:23 275

转载 c++中的强制转换static_cast、dynamic_cast、reinterpret_cast的不同用法儿

C 风格(C-style)强制转型如下:(T) exdivssion // cast exdivssion to be of type T函数风格(Function-style)强制转型使用这样的语法:T(exdivssion) // cast exdivssion to be of type T 这两种形式之间没有本质上的不同,它纯粹就是一个把括号放在哪的问题。我把这

2015-11-05 01:17:56 386

原创 修改完linux bashrc文件之后,如何不重启系统使其生效

修改完后,输入如下命令即可 ##@##:~/    source ~/.bashrc之后bashrc文件就可以使用!

2015-11-04 14:15:26 41244

转载 Linux下profile和bashrc四种的区别

/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc很容易混淆,他们之间有什么区别?它们的作用到底是什么?/etc/profile: 用来设置系统环境参数,比如$PATH. 这里面的环境变量是对系统内所有用户生效的。/etc/bashrc:  这个文件设置系统bash shell相关的东西,对系统内所有用户生效。只要用户运行bash命令,

2015-11-04 14:03:45 2992

转载 用异或交换两个整数的陷阱

前面我们谈到了,可用通过异或运算交换两个数,而不需要任何的中间变量。 如下面:void exchange(int &a, int &b){    a ^= b;    b ^= a;    a ^= b;}然而,这里面却存在着一个非常隐蔽的陷阱。通常我们在对数组进行操作的时候,会交换数组中的两个元素,如exchan

2015-11-04 08:57:27 658

转载 GThread 相关接口

同一进程可以包括多个线程,这些线程共享相同的内存空间,而进程都有各自独立的内存空间,进程之间通信需要专门的机制,这无疑增加了内核的开销,降低了系统性能。线程带来的开销很小,内核无需单独复制进程的内存空间或文件描述符等,这就大量地节省了CPU时间,使得创建线程比进程的速度快数十倍。另外,多线程程序作为一种多任务、并发的工作方式,还有以下的优点:1)提高应用程序响应时间;2)使多CPU系统更加有效;3

2015-11-02 15:50:36 1435

转载 c++工厂模式(Factory method)

下面以女娲造黑人,白人,黄种人的例子来介绍一下工厂模式。1.工厂的接口,相当于造人工厂总部。class IHumanFactory{public: IHumanFactory(void) { } ~IHumanFactory(void) { } virtual IHuman* CreateHum

2015-11-01 19:42:51 808 1

空空如也

空空如也

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

TA关注的人

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