摘要:int本身也要用一串字符表示,前后没有双引号,告诉编译器把它当作一个数解释。缺省情况下,是当成10进制(dec)来解释,如果想用8进制,16进制,怎么办?加上前缀,告诉编译器按照不同进制去解释。8进制(oct)---前缀加0,16进制(hex)---前缀加0x或者0X。string前后加上双引号,告...
阅读全文
09 2014 档案
摘要:将16进制字符串值转换为 int 整型值此例中用 "1de" 作为测试字符串,实现代码如下:[cpp]view plaincopy#include#include#include#include/**将字符转换为数值**/intc2i(charch){//如果是数字,则用数字的ASCII码减去48,...
阅读全文
摘要:在程序中,我们有时需要将一个十六进制字符串转换为十进制数字。比如:char *ptr="0x11";int n=0;//我们想让n等于0x11,即17通常我们在C中,想将一个字符串转换为一整形数字,通常会使用下面的方法:char*ptr="123";intn=0;n=atoi(ptr);printf...
阅读全文
摘要:近期在补充和梳理C++方面的知识的时候,遇到了WeakPtr这个概念和用法,不甚明白,Google出了一堆文字,包括Boost的shared_ptr和weak_ptr的比较,以及其他一些博客里面给的例子以及解释。其中有一个是这样解释的,原文大意:在C++的weak_ptr里面,有两类指针,一类是拥有...
阅读全文
摘要:智能指针实际上是一个类(class),里面封装了一个指针.它的用处是啥呢?指针与内存说到指针自然涉及到内存.我们如果是在堆栈(stack)中分配了内存,用完后由系统去负责释放.如果是自定义类型,就会自动的去调用你的析构函数.但如果是在堆(heap)中分配了内存,也就是用malloc或者new.那只能...
阅读全文
摘要:前面讲到auto_ptr有个很大的缺陷就是所有权的转移,就是一个对象的内存块只能被一个智能指针对象所拥有.但我们有些时候希望共用那个内存块.于是C++ 11标准中有了shared_ptr这样的智能指针,顾名思义,有个shared表明共享嘛.所以shared_ptr类型的智能指针可以做为STL容器的元...
阅读全文
摘要:我们知道auto_ptr通过复制构造或者通过=赋值后,原来的auto_ptr对象就报废了.所有权转移到新的对象中去了.而通过shared_ptr可以让多个智能指针对象同时拥有某一块内存的访问权.但假如我们不希望多个内存块被多个智能指针对象共享,同时又不会像auto_ptr那样不知不觉的就让原来的au...
阅读全文
摘要:FFmpeg是一个自由软件,可以运行音频和视频多种格式的录影、转换、流功能[1],包含了libavcodec ─这是一个用于多个项目中音频和视频的解码器库,以及libavformat——一个音频与视频格式转换库。"FFmpeg"这个单词中的"FF"指的是"Fast Forward"[2]。有些新手写...
阅读全文
摘要:本系列文章导航Windows下FFmpeg快速入门ffmpeg参数解释mencoder和ffmpeg参数详解(Java处理视频)Java 生成视频缩略图(ffmpeg)使用ffmpeg进行视频文件转换成FLV整理java 视频处理 mencoderjava 视频处理 ffmped+mencoderW...
阅读全文
摘要:内存池可有效降低动态申请内存的次数,减少与内核态的交互,提升系统性能,减少内存碎片,增加内存空间使用率,避免内存泄漏的可能性,这么多的优点,没有理由不在系统中使用该技术。内存池分类:1、不定长内存池。典型的实现有apr_pool、obstack。优点是不需要为不同的数据类型创建不同的内存池,缺点是造...
阅读全文
摘要:内存池可有效降低动态申请内存的次数,减少与内核态的交互,提升系统性能,减少内存碎片,增加内存空间使用率,避免内存泄漏的可能性,这么多的优点,没有理由不在系统中使用该技术。内存池分类:1、不定长内存池。典型的实现有apr_pool、obstack。优点是不需要为不同的数据类型创建不同的内存池,缺点是造...
阅读全文
摘要:FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件)。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多codec都是从头开发...
阅读全文
摘要:Linux下ffmpeg安装与开发配置1. ffmpeg安装安装环境:ubuntu 12.04(1)删除已安装的文件,避免冲突sudo apt-get remove ffmpeg x264sudo apt-get autoremove(2)安装需要的支持sudo apt-get install ma...
阅读全文
摘要:基于Live555,ffmpeg的RTSP播放器直播与点播多路RTSP高清视频播放器下载地址:http://download.csdn.net/detail/u011352914/6604437多路RTSP播放器源码下载地址:http://download.csdn.net/detail/u0113...
阅读全文
摘要:FFmpeg是一个集录制、转换、音/视频编码解码功能为一体的完整的开源解决方案。FFmpeg的开发是基于Linux操作系统,但是可以在大多数操作系统中编译和使用。FFmpeg支持MPEG、DivX、MPEG4、AC3、DV、FLV等40多种编码,AVI、MPEG、OGG、Matroska、ASF等9...
阅读全文
摘要:bind - boost头文件: boost/bind.hppbind是一组重载的函数模板.用来向一个函数(或函数对象)绑定某些参数.bind的返回值是一个函数对象.它的源文件太长了. 看不下去. 这里只记下它的用法:9.1 对于普通函数假如有函数 fun() 如下:void fun(int x, ...
阅读全文
摘要:Xwindows:gnome (红帽默认安装的图形界面)一, 确认及安装VNCSERVER。1,首先确认你服务器是否配置了VNCSERVER,可以在命令行下敲入以下命令查看:[root@localhost: ~]#rpm -qa |grep vncvnc-server-4.1.2-14.el5_3....
阅读全文
摘要:一、Fedora启动sshd服务:1、先确认是否已安装ssh服务:[root@localhost~]#rpm-qa|grepopenssh-server openssh-server-5.3p1-19.fc12.i686(这行表示已安装)若未安装ssh服务,可输入:#yuminstallopenss...
阅读全文
摘要:Linux中想杀死fcitx进程,然后再重启它。root@www.linuxidc.com:/home/zhangbin# ps -e | grep 'fcitx'3405 ? 00:00:00 fcitx 3415 ? 00:00:02 fcitx不显示标题root@www.linuxidc.co...
阅读全文
摘要:root@xuanfei-desktop:~/cpropram/2# cat global.h //头文件#ifndef CLOBAL_H #define GLOBAL_H #include int funca(void); int funcb(void);#endifroot@xuanfei-d...
阅读全文
摘要:经小众读者提名的我最喜爱的《远程控制工具》结果出炉:远程控制工具用来控制远方的电脑,用途很多,用处不小,不过可能很多同学很少用到,下面是排名:Teamviewer(小众介绍)QQ 远程向日葵远程控制(小众介绍)Windows远程协助SplashtopTeamviewer 专业又好用,对个人用户免费。...
阅读全文
摘要:在gdb调试时segmentation fault问题时,遇到下面的了问题:Program received signal SIGABRT, Aborted.0x00007ffff73eb925 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/...
阅读全文
摘要:一:列文件清单1. List(gdb) list line1,line2二:执行程序要想运行准备调试的程序,可使用run命令,在它后面可以跟随发给该程序的任何参数,包括标准输入和标准输出说明符()和外壳通配符(*、?、[、])在内。如果你使用不带参数的run命令,gdb就再次使用你给予前一条run命...
阅读全文
摘要:CMake特点CMake需要用户用CMake规范的语法编写CMake脚本,该语法简单易用,入门极其顺手原生支持 C/C++/Fortran/Java 的相依性的自动分析功能,免除了程序员对代码依赖的调整,对整个开发工作帮助很大支持 SWIG、Qt、FLTK 开发框架支持跨平台编译,这是CMake名字...
阅读全文
摘要:假定有vegagis工程,工程的目录结构如下:#--vegagis# |--src 源文件目录# |--gui 界面工程,输出类型:dll,依赖于QT的QtCore、QtGui、QtXml# |--pending 工程中的源文件,不希望加入到工程中# ## 为了实现跨平台运行,win32和linux...
阅读全文
摘要:linux下运行一个文件时 提示权限不够,说明这个文件没有可执行权限我们可以在属性里面手动为这个文件加上可执行权限也可以使用命令的方式命令方式:例如: bash: ./configure: 权限不够给文件加上可执行权限: chmod +x configure再输入 ./configure 就可以了...
阅读全文
摘要:希望这是现阶段阻碍阅读shiboken和PySide源码的涉及cmake的最后一个障碍^_^学习 cmake 的单元测试部分 ctest。简单使用最简单的使用ctest的方法,就是在 CMakeLists.txt 添加命令:enable_testing()该命令需要在源码的根目录文件内。从这一刻起,...
阅读全文
摘要:在cmake 学习笔记(三)中简单学习了 find_package 的 model 模式,在cmake 学习笔记(四)中了解一个CMakeCache相关的东西。但靠这些知识还是不能看懂PySide使用CMakeLists文件,接下来继续学习find_package的 config 模式及packag...
阅读全文
摘要:接前面的一二三,学习一下 CMakeCache.txt 相关的东西。CMakeCache.txt可以将其想象成一个配置文件(在Unix环境下,我们可以认为它等价于传递给configure的参数)。CMakeLists.txt 中通过 set(... CACHE ...) 设置的变量CMakeList...
阅读全文
摘要:转自:http://blog.csdn.net/dbzhang800/article/details/6329314接前面的Cmake学习笔记(一)与Cmake学习笔记(二)继续学习 cmake 的使用。学习一下cmake的 finder。finder是神马东西?当编译一个需要使用第三方库的软件时,...
阅读全文
摘要:在Cmake学习笔记一中通过一串小例子简单学习了cmake 的使用方式。这次应该简单看看语法和常用的命令了。简单的语法注释# 我是注释命令语法COMMAND(参数1 参数2 ...)字符串列表A;B;C # 分号分割或空格分隔的值变量(字符串或字符串列表)set(Foo a b c)设置变量 Foo...
阅读全文
摘要:最大的Qt4程序群(KDE4)采用cmake作为构建系统Qt4的python绑定(pyside)采用了cmake作为构建系统开源的图像处理库 opencv 采用cmake 作为构建系统...看来不学习一下cmake是不行了,一点一点来吧,找个最简单的C程序,慢慢复杂化,试试看:例子一单个源文件 ma...
阅读全文
摘要:这一节我们就一起来看看如何用CMake来链接自己写的lib库,如何进行这些库文件的管理。一个团队共同开发软件时,一般都是分模块进行作业的,每个人负责整个软件中的一部分,然后再整合成一个完整的软件系统。具体的做法一般是某个人开发的东西是以链接库的形式供团队中的其他人进行调用,或者供本人负责的程序的其他...
阅读全文
摘要:本节介绍如何用CMake来设置软件的版本号在《一起学习CMake - 01》中我们看到了如何用CMakeLists.txt来构建一个最简单的工程,这一节里我们一起来看看如何用CMake对开发的软件进行版本号的设置。在介绍这方面的内容时,先简单看一下在软件开发中是如何对版本号进行设置的,如VTK 5....
阅读全文
摘要:一起学习CMake – 01本节介绍CMake里最常用的三个命令,分别是cmake_minimum_required; project; add_executable等。CMake是个好东西,在使用VTK, ITK, IGSTK, OpenCV, DCMTK等开源工具包时,是离不开CMake的,甚至...
阅读全文
摘要:转自:《你所不知的OSG》第一章:CMake初步(2)http://bbs.osgchina.org/forum.php?mod=viewthread&tid=1229&fromuid=34341.4 词法和语法在开始本节的学习之前,我们先总结一下之前所了解到的CMake基本词法和命令。CMake命...
阅读全文
摘要:转自:《你所不知的OSG》第一章:CMake初步(1)http://bbs.osgchina.org/forum.php?mod=viewthread&tid=1189&fromuid=3434本章的主要目的并非介绍OpenSceneGraph的常用类和功能,而是介绍它的一个重要伙伴,抑或说,是一个...
阅读全文
摘要:原文地址:blog.csdn.net/ghostyu/article/details/77551771、目标名称,摆脱手动设置目标名称[cpp]view plaincopyTARGET=$(notdir$(CURDIR))all:$(TARGET)CMD....$(CURDIR) 表示Makfile...
阅读全文
摘要:原文地址:http://www.cnblogs.com/sinojelly/archive/2010/05/22/1741337.htmlCMake是一个比make更高级的编译配置工具,它可以根据不同平台、不同的编译器,生成相应的Makefile或者vcproj项目。通过编写CMakeLists.t...
阅读全文
摘要:CMAKE的使用Version 1.02009-3-18一、基本使用安装:下载二进制包后可直接解压使用从源码安装则执行命令:./bootstrap; make; make install——尝试执行bootstrap失败使用:cmake dir_path,生成工程文件或makefile文件二、概念o...
阅读全文
摘要:一、基本使用安装:下载二进制包后可直接解压使用从源码安装则执行命令:./bootstrap; make; make install——尝试执行bootstrap失败使用:cmake dir_path,生成工程文件或makefile文件二、概念out-of-sourcebuild,与in-source...
阅读全文
摘要:环境:RedHat Linux 5企业版。Xwindows:gnome (红帽默认安装的图形界面)尽管我们可以使用SSH连接远程通过字符界面来操作Linux,但是对于更多熟悉图形人来说是很不方便的,因此开启Linux的远程桌面还是很有必要的。目前有两种比较流行的方式:XDM(X display ma...
阅读全文
摘要:1.确认VNC是否安装默认情况下,Red Hat Enterprise Linux安装程序会将VNC服务安装在系统上。确认是否已经安装VNC服务及查看安装的VNC版本[root@testdb ~]# rpm -q vnc-servervnc-server-4.1.2-9.el5[root@testd...
阅读全文
摘要:#/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT #/sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT #/etc/rc.d/init.d/iptables save重启计算机后,防火墙默认已...
阅读全文
摘要:VNC(Virtual Network Computing)虚拟网络计算工具,它是一个桌面共享系统。它的功能类似于windows中的远程桌面功能。VNC使用了RFB(Remote Frame Buffer,远程帧缓冲)协议来实现远程控制另外一台计算机。它把键盘、鼠标动作发送到远程计算机,并把远程计算...
阅读全文
摘要:PS:偶以前基本不用Linux的远程图形桌面,前几天有开发的同事配置CentOS的vnc有问题,找我解决,就顺便记录总结一下,这个总结是比较完整的。下面的配置在CentOS5.x和6.x、SUSE企业版亲测验证,其他发行版按理也通用:一、安装相应桌面环境与vnc服务端和客户端:# yum group...
阅读全文
摘要:XManager是一个简单易用的高性能的运行在Windows平台上的X-Server软件,而Gnome和KDE就是X-Client,Linux下的X-Server则为Xorg。它能把远端Unix/Linux的桌面无缝地带到你的Windows上,甚至当你的电脑是在内网或防火墙后,你也能通过SSH协议安...
阅读全文
摘要:VNC是由AT&T试验室开发,是一款优秀的远程控制工具软件,后来以GPL授权的形式开源。经过几年的发展,现在的VNC已经不单指某个软件,而是一类软件的通称。下面介绍Linux下常用的两个VNC软件。VNC的原理就是不停的对窗口界面截屏,再将图像传输给客户端,同时VNC服务器端接管服务器端的键盘、鼠标...
阅读全文
摘要:from:www.penlug.org/twiki/bin/view/Main/TightVNCUsing VNCThe toolvncserverallows you to run additional X servers on a single machine. These X servers ...
阅读全文
摘要:Virtual Networking Computing(VNC) is a Kind of remote sharing system that makes it possible to take control of any other computer connected to interne...
阅读全文
摘要:看到一篇介绍linux c/c++开发调试技巧的文章,感觉挺使用,哪来和大家分享。通向 UNIX天堂的 10个阶梯Author: Arpan Sen,高级技术人员, Systems Documentation, Inc. (SDI)讨论几种可以帮助C++开发人员节省时间的技巧和免费工具。C++开发人...
阅读全文
摘要:就C++开发工具而言,与Windows下微软(VC,VS2005等)一统天下相比,Linux/Unix下C++开发,可谓五花八门,各式各样。Emacs,vi,eclipse,anjuta,kdevelop等层出不穷。Windows下,开发工具多以集成开发环境IDE的形式展现给最终用户。例如,VS20...
阅读全文
摘要:网易(163)yum源是国内最好的yum源之一 ,无论是速度还是软件版本,都非常的不错,将yum源设置为163yum,可以提升软件包安装和更新的速度,同时避免一些常见软件版本无法找到。V9zz的云主机就将yum源设置为163的yum,具体设置方法如下:1,进入yum源配置目录cd /etc/yum....
阅读全文
摘要:一、yum 简介 yum,是Yellow dog Updater, Modified 的简称,是杜克大学为了提高RPM 软件包安装性而开发的一种软件包管理器。起初是由yellow dog这一发行版的开发者Terra Soft 研发,用python写成,那时还叫做yup(yellow dog upd...
阅读全文
摘要:CentOS 的官方源去掉了一些与版权有关的软件,因此想要安装这些软件或者手动下载安装,或者使用其他源. 下面我推荐常用的两个源, 这两个源基本可以满足一般服务器的使用需求.首先, 添加源之前要确定系统架构及版本.查看系统版本:Shell1lsb_release -a此命令大部分主机上已安装, 会得...
阅读全文
摘要:epel简介: https://fedoraproject.org/wiki/EPEL/zh-cn 1. rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm 粗体部分需要根据自己的的环境...
阅读全文
摘要:centos 推荐使用epel源张映 发表于 2011-10-13分类目录: linux在dell r410上面装的是centos6,64的操作系统,用的163的源,我一直都是用163的源,比较快。但是我发现这个源里面,根本没有 libmcrypt libmcrypt-devel这二个包,装php扩...
阅读全文
摘要:EPEL 是什么?EPEL (Extra Packages for Enterprise Linux,企业版Linux的额外软件包) 是Fedora小组维护的一个软件仓库项目,为RHEL/CentOS提供他们默认不提供的软件包。这个源兼容RHEL及像CentOS和Scientific Linux这样...
阅读全文
摘要:默认centos自带的源少了很多好软件,所以需要添加第三方源一、安装CentOS yum源优先级插件yum-prioritiesyum install yum-plugin-priorities.noarch二、设置CentOS默认yum源的优先级为最高cd /etc/yum.repos.d/ #进...
阅读全文
摘要:玩Linux系统,会经常用到远程桌面软件。我一直用的2个是Xmanager和VNC。今天看到一个新软件:NoMachine。NoMachine NX是一个快速的终端服务器和虚拟桌面软件,基于X11协议。据说速度比VNC还快,甚至可以在只有10k的带宽环境下运行。而且画面也比VNC的清楚。NoMach...
阅读全文
摘要:1.在linux服务器上需要安装3个文件,下载地址为:http://www.nomachine.com/download-package.php?Prod_Id=1977nxclient-3.4.0-7.i386.rpm,nxnode-3.4.0-13.i386.rpm,nxserver-3.4.0...
阅读全文
摘要:转载自;http://q1q2q3q4q5q6ln.blog.163.com/blog/static/500794332014666536283/(注意:请务必先阅读:七,后记补充:)ffmpeg是一个开源的多媒体库,使用非常广泛。在linux下编译ffmpeg非常简单,而在Windows下编译就不...
阅读全文
摘要:本文的内容几乎全部来自于FFmpeg on Windows,但是由于国内的网络封锁,很难访问这个域名下的内容,因此我一方面按照我自己的理解和实践做了翻译,另一方面也是为了能提供一个方便的参考方法。注:1.对于compile和build这两个词,本文统一的使用编译这个词,根据上下文读者应能区分语义上的...
阅读全文
摘要:MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNC工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时MinGW,即 Minimalist GNU For Windows。它是一些头文件和端口库的集合,该集合允许人们在没有第三方动态链接库的情况下使用 ...
阅读全文
摘要:注意:这个是编译Debug版本的。必要资源:FFMPEG SDK 3.2(已经编译好的,可以去http://www.bairuitech.com/html/ruanjianxiazai/ffmpeg/20080414/89.html下载)1.建立一个空的VC++工程建立好之后,将FFMPEG SDK...
阅读全文
摘要:经过一晚上加一上午的奋斗,终于成功编译出了最新版的FFMPEG,下面是我编译的心得,因为是最新的,应该会对大家有用,编译的FFMPEG的版本是0。11。2,2012-09-19新发布的版本平台:WINDOWS XP,MinGW+MSYS一、下载FFMPEG大家可以到FFMPEG官网上去下载最新版:h...
阅读全文
摘要:最近研究ffmpeg,在ubuntu下感觉不太好调试,老是找不到函数的声明。所以我就把他移到windows下用vs2008分析关于环境的搭建,我参考了http://hi.baidu.com/forever803/blog/item/ba90cdd2cca917093af3cf9e.html,这里我把...
阅读全文
摘要:随着嵌入式技术的快速发展,Linux快速发展过一段时间。虽然现在不是很热,但是linux在现实社会的使用还是很有用处。而光盘有有些落伍,不仅浪费而且不环保,所以质优价廉的优盘就脱颖而出。所以,用优盘制作启动linux启动盘,不仅低碳环保,而且高端大气上档次。工具/原料PowerISO软件。Linux...
阅读全文
摘要:对于新手学习,mount 命令,一定会有很多疑问。其实我想疑问来源更多的是对linux系统本身特殊性了解问题。 linux是基于文件系统,所有的设备都会对应于:/dev/下面的设备。如:[chengmo@centos5 dev]$ ls | grep -E "^(sd|hd)"hdcsdasda1s...
阅读全文
摘要:在编译php时报错如下:# make。。。/usr/bin/ld: cannot find -lltdlcollect2: ld returned 1 exit statusmake: *** [libphp5.la] Error 1问题原因:该问题一般是由于ld在进行库的连接时找不到库文件所致:解...
阅读全文
摘要:对于经常在终端下写程序的non-windows程序员,Makefile绝对是最常用的工具,小到一个文件的简单的测试程序,大到数百个文件的商业软件,只需要有shell,一个make命令就可得到可运行的程序,Makefile绝对功不可没;可惜世界中不是那么太平,不但各个Posix系统的API千差万别,硬...
阅读全文
摘要:无论生活还是工作上,做过的事,需要总结下。接触cmake,一般都会看一本书 >. 这是cmake的入门书。我就不多说了。下面说一下我对部分cmake命令的使用与理解,不正确的,请大家指点,谢谢!1. 所有的注释,都以#开头。#XXX Build Script#CMakeLists.txt##Copy...
阅读全文
摘要:参考链接:http://www.cnblogs.com/coderfenghc/tag/cmake/
阅读全文
摘要:今天拿起手要用C++写个小工具,从指定的目录递归遍历文件,然后做一下处理。又翻了一下boost的filesystem库。小结一下,希望能加深印象,免得下次又要查看文档。1. path对象就是一个跨平台的路径对象。有许多方法访问路径的各个部分,也用它的iterator迭代路径中的各个部分; path构...
阅读全文
摘要:Boost.Filesystem 库为对路径、文件和目录进行查询和操作提供了可移植的工具,已经被C++标准委员会接纳包含到TR2中。编译使用Boost.Filesystem 库之前要先编译它,请参考《Boost的编译》头文件#include 所有Boost.Filesystem库的内容都处于名空间b...
阅读全文
摘要:原帖:https://tokyo.zxproxy.com/browse.php?u=uG7kXsFlW1ZmaxKEvCzu8HrCJ0bXIAddA1s5dtIUZ%2FYzM1u9JI7jjKLTXvXJlIqeavUo1Ak%3D&b=6如果要在 C++ 裡對特定的檔案做存取,其實透過 STL...
阅读全文
摘要:[cpp]view plaincopy#include#include#includeusingnamespacestd;usingnamespaceboost::program_options;intmain(intargc,char*argv[]){stringone;//外部变量存储参数one...
阅读全文
摘要:一直认为boost都是hpp直接调用就可以了,最近遇到两个例子都不是这样的一个是boost的thread,另外一个就是这个了,boost在编译好之后会有库文件的,注意不是在当前的libs下面,而是stage/libs下面,我们在使用这个模块的时候要加上相应的动态或者静态的库。当我们写一些小程序的时候...
阅读全文
摘要:程式執行參數處理函式庫:Boost Program Options(2/N)前一篇已經大致解釋了 Boost Program Options 基本上的使用方法。而這一篇,則來細講一下選項描述(options_description)的進一步設定方法吧~在上一篇裡,基本上是示範了兩種最簡單的方法:bO...
阅读全文
摘要:程式執行參數處理函式庫:Boost Program Options(1/N)一般程式寫得大一點、或是需要比較有彈性,通常都需要在程式執行的時候,從外部讀取一些參數,來做為內部的設定值。一般來說,比較常見的方法,大概就是直接透過命令提示字元(command line)來下參數,或是透過讀取設定檔(例如...
阅读全文
摘要:介绍程序参数项(program options)是一系列name=value对,program_options 允许程序开发者获得通过命令行(command line)和配置文件(config file)获取这些参数项。为什么需要这样一个库?为什么比你手工写代码分解命令行参数要好?使用更容易。定义参...
阅读全文
摘要:熟悉C++98的朋友,应该都知道,在C++98中没有thread, mutex, condition_variable这些与concurrency相关的特性支持,如果需要写多线程相关程序,都要借助于不同平台上各自提供的api,这样带来的问题就是程序的跨平台移植性比较差,经常要用一大堆的#ifdef ...
阅读全文
摘要:1. mutex对象类mutex类主要有两种:独占式与共享式的互斥量。▲ 独占式互斥量:mutex: 独占式的互斥量,是最简单最常用的一种互斥量类型try_mutex: 它是mutex的同义词,为了与兼容以前的版本而提供timed_mutex: 它也是独占式的互斥量,但提供超时锁定功能▲ 递归式互斥...
阅读全文
摘要:C++函数模版与类模版。template void SwapFunction(T &first, T &second){}//函数模版template //类模版class CTemplate{public: void SWap(T &first, T &second){ }};#include...
阅读全文
摘要:单例模式(Singleton Pattern)是设计模式中的一种,它用来保证系统中最多只能存在一个它的实例,其做法是由类自身来创建和持有它的对象实例,把对实例的创建权和管理权都控制在自己手中,以便控制实例数目。关于如何在C++中实现单例模式的讨论已经太多了,我只是简单介绍一下可以继承的单例类。首先介...
阅读全文