C/C++高级用法
文章平均质量分 91
放牛娃不吃草
这个作者很懒,什么都没留下…
展开
-
Eclipse CDT C++11/C++0x support 支持c++11特性例如shared_ptr
http://stackoverflow.com/questions/9131763/eclipse-cdt-c11-c0x-supportup vote190down voteacceptedI found this article in the Eclipse forum, just followed those step转载 2017-01-04 14:47:24 · 1114 阅读 · 0 评论 -
高效率C写法介绍
PS:原文翻译的有些地方不太确切,尤其是对于第7点static的使用的翻译容易引起误解,故稍做调整,如有妥之处,还请谅解!任何代码的美丽不仅在于找到一个给定的问题的解决方案,还在它的简单性,有效性,紧凑性和效率(内存)。设计的代码比实际执行更难 。因此,每一个程序员当用C语言开发时,都应该保持这些基本的东西在头脑中。 本文向你介绍规范你的C代码的10种方法。 1. 避免转载 2014-02-13 14:06:23 · 1854 阅读 · 0 评论 -
函数指针高级运用(C函数指针)
阅读本文先阅读下两文: http://blog.csdn.net/gubenpeiyuan/article/details/11193865 http://blog.csdn.net/gubenpeiyuan/article/details/11192583阅读之后,给出一个函数运用实例。方式为定义一个函数指针类型,直接调用后,回调。原创 2013-09-06 10:11:06 · 1577 阅读 · 0 评论 -
函数指针高阶运用(C++函数指针)
函数指针类中的的迭代方法,示例。阅读本文先阅读下两文: http://blog.csdn.net/gubenpeiyuan/article/details/11193865 http://blog.csdn.net/gubenpeiyuan/article/details/11192583阅读之原创 2013-09-13 15:20:50 · 1353 阅读 · 0 评论 -
wait以及waitpid用法详解
wait(等待子进程中断或结束)表头文件 #include #include定义函数 pid_t wait (int * status);函数说明: wait()会暂时停止目前进程的执行,直到有信号来到或子进程结束。 如果在调用 wait()时子进程已经结束,则 wait()会立即返回子进程结束状态值。转载 2013-11-06 16:02:43 · 2965 阅读 · 0 评论 -
STL中map用法详解
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有转载 2013-10-19 11:26:16 · 974 阅读 · 0 评论 -
C语言中变参函数的函数写法(Linux下实测)
多参数运用:下面是一个参数添加的方法:一个多参数调用的例子原创 2013-01-10 13:48:51 · 1399 阅读 · 0 评论 -
setsockopt()用法(参数详细说明)
int setsockopt(SOCKET s,int level,int optname,const char* optval,int optlen);s(套接字): 指向一个打开的套接口描述字level:(级别): 指定选项代码的类型。SOL_SOCKET: 基本套接口IPPROTO_IP: IPv4套接口IPPROTO_IPV6: IPv6套接转载 2013-09-04 09:33:40 · 1270 阅读 · 0 评论 -
Socket编程Linux或者Windows或Vxworks
“一切皆Socket!”话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。——有感于实际编程和开源项目研究。我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些?还有转载 2013-09-02 14:39:16 · 2549 阅读 · 0 评论 -
二维数组指针详解
二维数组指针 概括的说,指针其实就是可变数组的首地址,说是可变数组,是 指其包含内容的数量的可变的,并且是可动态申请和释放的,从而充 分节约宝贵的内存资源。我一向喜欢一维数组,除非万不得已,我一 般是不用二维数组的,多维的则更是很少涉足了。因为一维简单,容 易理解,而用指针指向的多维数组就具有相当的复杂性了,也因此更 具有讨论的必要。 闲话少说,这里我就以三转载 2014-09-30 10:14:00 · 1112 阅读 · 0 评论 -
浅析c++中virtual关键字
1.virtual关键字主要是什么作用?c++中的函数调用默认不适用动态绑定。要触发动态绑定,必须满足两个条件:第一,指定为虚函数;第二,通过基类类型的引用或指针调用。由此可见,virtual主要主要是实现动态绑定。2.那些情况下可以使用virtual关键字?virtual可用来定义类函数和应用到虚继承。友元函数 构造函数 stati转载 2015-04-01 14:27:24 · 798 阅读 · 0 评论 -
Boost正则表达式库regex常用search和match示例
示例很简单,但是很有针对性,可以根据示例进行不用的修改,之后加入到各种工程中。#include #include #include #include #include using namespace std;using namespace boost; regex subexp("e[cl][oe][mc]"); regex expression("^se原创 2013-08-11 18:17:55 · 5673 阅读 · 0 评论 -
boost智能指针笔记
参见《Boost程序库完全开放指南》 第3章 内存管理所有示例,采用vs2010开发工具(vs2005也适用),均为win32控制台程序。Boost库的配置可参照:http://blog.csdn.NET/segen_jaa/article/details/7407404。1、scoped_ptr内动态管理内存。但所有权不能转让,不能进行赋值操作。转载 2016-11-03 16:48:25 · 458 阅读 · 0 评论 -
C++时间,文件及字符常用函数总结
boost获取格式化时间:#include #define BOOST_DATE_TIME_SOURCE std::string strTime = boost::posix_time::to_iso_string( boost::posix_time::second_clock::local_time()); int pos = strTime.fin原创 2016-04-18 15:55:30 · 801 阅读 · 0 评论 -
c++添加swich case string 的支持
#pragma once // ---------------------------------------------------------------------------- // string_switch_case.h // // These macros together implement switch-case functiona转载 2016-04-15 15:03:01 · 820 阅读 · 0 评论 -
C++11的tuple用法笔记
#include #include #includeusing std::cout ;using std::endl ;using std::tuple;using std::vector;using std::string;using std::get;using std::make_tuple ;auto handleCmd(){ auto t1 = make_t原创 2016-04-15 09:11:31 · 4661 阅读 · 0 评论 -
c++基础复习:c++模板编程常用用法整理
c++模板编程可以使你的程序更加的优雅和简介,在减少了代码量的优势下不说,运用得当也可以极高提高运行效率和开发效率。作者总结了几种常用的c++模板编程方式见下文:泛型编程就是以独立于任何特定类型的方式编写代码,而模板是泛型编程的基础。(1)定义函数模板(function template)函数模板是一个独立于类型的函数,可以产生函数的特定类型版本。// im原创 2016-04-05 15:48:04 · 726 阅读 · 0 评论 -
c++复习:C++的精髓—虚函数virtual用法白话详解
虚函数为了重载和多态的需要,在基类中是由定义的,即便定义是空,所以子类中可以重写也可以不写基类中的函数!纯虚函数在基类中是没有定义的,必须在子类中加以实现,很像java中的接口函数!虚函数引入原因:为了方便使用多态特性,我们常常需要在基类中定义虚函数。class Cman{public:virtual void Eat(){……};void Move();pri转载 2016-04-05 14:23:48 · 879 阅读 · 0 评论 -
gtest和gmock入门
对于 c++ 来说写单元测试和 mock 框架不是一件容易的事情。还好, Google 为我们搭建了一个出色的单元测试和 mock 框架。网上的例子很多都过多强调概念,本文用一个简单的例子让大家对于什么是 gtest 和 gmock 让大家有一个直观的了解,让大家很快上手,就像写 hello word 一样容易。gtest&gmock 的 1.6 版本的使用 make 编译,新版的已经已经迁移转载 2016-02-17 10:19:57 · 22278 阅读 · 0 评论 -
python调用c/c++方式示例(修改整理)
Python是解释性语言, 底层就是用c实现的, 所以用python调用C是很容易的, 下面就总结一下各种调用的方法, 给出例子, 所有例子都在ubuntu9.10, python2.6下试过. 1. Python 调用 C (base)想在python中调用c函数, 如这儿的fact#include int fact(int n){ if (n <= 1) re原创 2016-03-03 18:01:32 · 1499 阅读 · 0 评论 -
函数指针详解
函数名与函数指针一 通常的函数调用 一个通常的函数调用的例子://自行包含头文件void MyFun(int x); //此处的申明也可写成:void MyFun( int );int main(int argc, char* argv[]){ MyFun(10); //这里是调用MyFun(10);函数 return转载 2013-09-06 09:46:07 · 2350 阅读 · 0 评论 -
定义使用函数指针
1 定义一个函数指针且不论语法,有两种不同形式的指针函数: 一个是指向普通的C函数的指针和C++的静态成员函数,另外一个是指向C++的非静态成员函数的指针。这两者的基本区别是所有指向非静态成员函数的指针都 需要这个隐含定义:指向本类的一个This指针。注意:这两种函数指针彼此不兼容。既然一个函数指针实际上和一个变量没有什么区别,定义它的时候也就没有什么特殊。下面的例子中我们定义3个函转载 2013-09-06 09:29:17 · 2583 阅读 · 0 评论 -
http编程URL的Get与post
http(post //get) 一、HTTP-GET和HTTP-POST HTTP-GET和HTTP-POST是使用HTTP的标准协议动词,用于编码和传送变量名/变量值对参数,并且使用相关的请求语义。每个HTTP-GET和HTTP-POST都由一系列HTTP请求头组成,这些请求头定义了客户端从服务器请求了什么,而响应则是由一系列HTTP应答头和应答转载 2013-01-21 18:42:07 · 2109 阅读 · 0 评论 -
Boost上 Http的一个Get示例分析
有的时候需要实现C++编写http客户端更新网页服务器上的内容,Boost 编程有一个Get的示例如下。是取得WEB server的license。以下是Boost 官方实例://// sync_client.cpp// ~~~~~~~~~~~~~~~//// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at原创 2013-01-22 10:09:21 · 3423 阅读 · 0 评论 -
C语言POSIX正则表达式示例
C语言的正则表达式具有效率高,编程容易的特点,其精华在于写出一个好的正则表达式规则。示例如下。规则可以看我的其他博文。下面是示例调试的时候,可以发现,其实有些问题,不能置零字符串尾,否则否内存错误。很奇怪,这是C的内存操作的奥秘啊。#include #include #include #include #include int main(int argc, char *原创 2013-01-05 09:56:08 · 1234 阅读 · 0 评论 -
C++ boost 正则表达式用法
什么是正则表达式?正则表达式是一种用来描述一定数量文本的模式。Regex代表Regular Express。如果您不知道什么是正则表达式,请看这篇文章http://blog.csdn.net/begtostudy/archive/2007/11/11/1879206.aspx有了正则表达式的基础,问题是如何使用。我们以boost::regex来说先看一个网上经典的例子。#inclu转载 2013-01-22 18:38:01 · 2964 阅读 · 0 评论 -
C语言正则表达式(修改版)
在很多人看来,正则表达式看上去古怪且复杂,因此往往不想去触及或使用。如果我们抛开这种“畏难”心理,在经过循序渐进地学习之后,就会发现这些复杂的表达式其实写起来还是相当简单的。一旦它被你所“驯服”,就可利用正则表达式把原需数小时辛苦且易错的文本处理工作压缩在几分钟(甚至几秒钟)内完成。 正则表达式定义正则表达式(regular expression)是Linux系统中一种非常原创 2012-12-14 10:27:11 · 1141 阅读 · 0 评论 -
POSIX(C语言)正则表达式规则
正则表达式说明简介大体来讲,正则表达式的文法分为3种标准:BRE、ERE 和 ARE。其中 BER 和 ERE 属于 POSIX 标准,ARE 则是由各家定义的扩展。POSIX 正则表达式 传统上,POSIX 定义了两种正则表达式语法, 即:基本正则表达式(BRE)和扩展正则表 达式(ERE)。 其中, BRE 定义的语法符号包括:原创 2012-12-29 09:18:20 · 2812 阅读 · 0 评论 -
POSIX正则表达式规则
正则表达式(regular expression)是一种表示方式,在许多地方均有对此的支持,如命令grep、语言Python、工具vim等。但是这里仅讨论POSIX正则表达式,显然它与其他正则表达式(如传统的Unix正则表达式)存在稍许的差异。POSIX正则表达式分为:BRE(Basic Regular Expression)和ERE(Extended Regular Expressions)转载 2012-12-29 11:16:06 · 1564 阅读 · 0 评论 -
正则表达式实验。C,linux实验
#include #include #include int main(int argc, char ** argv){ if (argc != 3) { printf("Usage: %s RegexString Text\n", argv[0]); return 1; } const char * pRegexSt原创 2012-12-28 17:47:17 · 1083 阅读 · 0 评论 -
C++中list类使用教程
双向循环链表list list是双向循环链表,,每一个元素都知道前面一个元素和后面一个元素。在STL中,list和vector一样,是两个常被使用的容器。和vector不一样的是,list不支持对元素的任意存取。list中提供的成员函数与vector类似,不过list提供对表首元素的操作push_front、pop_front,这是vector不具备的。和vector另一点不转载 2013-03-11 10:31:54 · 4112 阅读 · 0 评论 -
Zlib库使用教程
zlib(http://zlib.net/)提供了简洁高效的In-Memory数据压缩和解压缩系列API函数,很多应用都会用到这个库,其中compress和uncompress函数是最基本也是最常用的。不过很奇怪的是,compress和uncompress函数尽管已经非常的简单,却仍然有不少人用得不好,其实归根结底还是在于有些事情没有弄明白,这里大家先看下面的代码。[cpp转载 2013-03-28 22:31:46 · 6428 阅读 · 0 评论 -
C++中Vector使用教程
C++中的vector使用范例 一、概述 vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector是一个容器,它能够存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,可以动态改变大小。 例如: // c语言风格 int myHouse[100] ; // 采用ve转载 2013-03-11 10:39:38 · 4694 阅读 · 2 评论 -
Linux信号量机制及编程
1965年,荷兰学者Dijkstra提出了利用信号量机制解决进程同步问题,信号量正式成为有效的进程同步工具,现在信号量机制被广泛的用于单处理机和多处理机系统以及计算机网络中。信号量S是一个整数,S大于等于零是代表可供并发进程使用的资源实体数,当S小于零时则表示正在等待使用临界区的进程数。Dijkstra同时提出了对信号量操作的PV原语。P原语操作的动作是:(1)S减转载 2013-08-29 18:15:45 · 1983 阅读 · 0 评论 -
C语言对象化编程
C中struct的函数实现,只能用函数指针成员。C结构体内不能有函数的代码,但可以有函数的指针。C/C codeCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/#include struct test{原创 2013-08-29 15:14:26 · 1915 阅读 · 0 评论 -
C++函数模板详解
C++提供了函数模板(function template)。所谓函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表。这个通用函数就称为函数模板。凡是函数体相同的函数都可以用这个模板来代替,不必定义多个函数,只需在模板中定义一次即可。在调用函数时系统会根据实参的类型来取代模板中的虚拟类型,从而实现了不同函数的功能。看下面的例子就清楚了。例4.7 将例4转载 2013-08-15 22:05:29 · 891 阅读 · 0 评论 -
boost_regex正则表达式详解
boost::regex的默认正则表达式语法是perl语法 boost::regex支持perl regular表达式、POSIX-Extended regular表达式和POSIX-Basic Regular表达式,但默认的表达式语法是perl语法,如果要使用其余两种语法需要在构造表达式的时候明确指定。 例如,下面两种方法效果相同 //转载 2013-08-11 17:29:27 · 4398 阅读 · 1 评论 -
Linux使用正则表达式自动搜索目录下文件。
写了一个小函数,贴出来给参考参考。输入是,你要搜索的顶层目录,第二个参数是你需要存放结果的列表,第三个参数,为你写的正则表达式。十分简单。效率很高。#include #include #include using namespace std ;void RegexMatchAndSave(const char *FileName,char *path,list *file原创 2013-08-21 17:22:07 · 2374 阅读 · 1 评论 -
linux下zlib的使用(linux下名字为libz)
感谢网友贡献的测试示例,使用很方便。/* * main.c * * Created on: Aug 12, 2012 * Author: zhuguangsheng */#include #include int main(int argc, char *argv[]){ printf("hello my zlib test!\n"); //原始数据 c原创 2013-03-16 15:44:06 · 4706 阅读 · 0 评论 -
Zlib编程详解
zlib 是通用的压缩库,提供了一套 in-memory 压缩和解压函数,并能检测解压出来的数据的完整性(integrity)。zlib 也支持读写 gzip (.gz) 格式的文件。下面介绍两个最有用的函数——compress 和 uncompress。 int compress(Bytef *dest, uLongf *destLen, const Bytef *sou转载 2013-08-19 14:27:34 · 2359 阅读 · 0 评论