C/C++
文章平均质量分 76
春起之苗
做一只IT小小鸟自由飞翔
展开
-
c++模板之声明定义分离编译模型
当我们声明和定义一个模板的时候,必须要让声明和定义放在一个文件里。否则编译器会报错。这就是为什么boost的实现文件的后缀名是hpp了。这其中的理由是什么呢?为什么会这样?首先,一个编译单元(translation unit)是指一个.cpp文件以及它所#include的所有.h文件,.h文件里的代码将会被扩展到包含它的.cpp文件里,然后编译器编译该.cpp文件为一个.obj文件(假转载 2013-01-23 20:48:18 · 351 阅读 · 0 评论 -
C++进阶参考好书
(一)语言入门:《C++ Primer》最新版本:第三版(第四版国外已上架,国内一些网上书店也在预订中)适合有丰富C经验,缺乏C++经验的。不过我个人一直认为此书带着过于强烈的C语言的痕迹,对于C++的学习未必是好事。《The C++ Programming Language》/《C++程序设计语言》最新版本:第三版特别版简称TC++PL,有其他语言的丰富经验的。(也有转载 2013-03-15 16:19:08 · 435 阅读 · 0 评论 -
图的存储结构
图的存储表示方法很多,这里介绍两种最常用的方法。至于具体选择哪一种表示法,主要取决于具体的应用和欲施加的操作。为了适合用C语言描述,以下假定顶点序号从0开始,即图G的顶点集的一般形式是V(G)={v0,vi,…,Vn-1}。图的邻接矩阵表示法1.图的邻接矩阵表示法 在图的邻接矩阵表示法中: ① 用邻接矩阵表示顶点间的相邻关系 ② 用一个顺序表来存储顶点信息转载 2013-03-15 16:45:57 · 520 阅读 · 0 评论 -
bind的用法
bind.hpp Contents目的和函数及函数指针一起使用 bind和函数对象一起使用 bind和成员指针一起使用 bind为函数组合使用嵌套的 binds重载操作符示例和标准算法一起使用 bind和 Boost.Function 一起使用 bind局限性常见问题这个为什么不能编译?这个为什么能编译?它应该不能转载 2013-03-27 18:33:28 · 3664 阅读 · 0 评论 -
Secure CRT Function
Microsoft Visual Studio: Secure CRT Functions IntroductionTwo programmers went to buy cigarettes. One buys them and goes "Dude, did you read this? Warning! Smoking causes lung cancer witch i转载 2013-09-11 15:28:00 · 967 阅读 · 0 评论 -
Boost.Regex学习
使用Boost.Regex手里有七种武器和两****宝其中的七种武器是:regex_match 函数regex_search 函数regex_replace 函数regex_format 函数regex_grep 函数regex_split 函数RegEx 类每种武器都又有诸多变化(每个函数都分别以C字符串类型、std::string类型、迭代器类型作为参数转载 2013-10-17 21:01:54 · 743 阅读 · 0 评论 -
C/C++预处理器相关
预处理执行时间:编译之前,其处理结果将会被作为独立的文件传至真正的编译器。预处理功能:有条件地编译文件的若干部分(由指令#ifdef #ifndef #if #else #elif #endif控制)替换文本宏(由指令#define #undef # ##控制)包含其他文件(由指令#include控制)产生一个警告(由指令#warning控制)产生一个错误(由指令#er转载 2013-10-30 21:18:44 · 1148 阅读 · 0 评论 -
C++动态链接/静态链接库编程
转载:http://www.cppblog.com/kyelin/articles/17644.htmlVC++ 动态链接库(DLL) 编程(一) ――理解库 作者: 宋宝华 e-mail:21cnbao @ 21cn.com 1. 概论 先来阐述一下 DLL(Dynamic Linkable Library) 的概念,你可以简单的把 DLL 看成一种仓库,转载 2013-10-30 21:58:58 · 3222 阅读 · 0 评论 -
extern "C"的作用
原文转载地址:http://blog.csdn.net/weiwangchao_/article/details/46818131、在cpp文件中调用c文件中实现的函数的时候,需要用extern "C"声明该函数,否则cpp会按名字改编后的函数名去找该函数而找不到。(这是作用) c文件中有一函数: void Transfer(int a; char b);转载 2013-10-31 21:32:41 · 485 阅读 · 0 评论 -
Microsoft incremental linker已停止工作解决方法
[转]提示microsoft incremental linker已停止工作解决方法这个是因为你的设置有问题。解决方法如下:解决方案一:项目->属性->链接器->常规 下面的“启用增量链接”,将“是(/INCREMENTAL)”改为“否(/INCREMENTAL:NO)”。不过这又引入了另外一个警 告:FormatCom.obj : warning LNK4075: 忽略“转载 2013-11-07 19:46:45 · 683 阅读 · 0 评论 -
C/C++中与时间、日期有关的函数总结
From: http://blog.csdn.net/byrsongQQ/article/details/5790445本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法。关键字:UTC(世界标准时间)转载 2013-11-13 19:03:43 · 863 阅读 · 0 评论 -
CRT 中创建、删除线程函数与WinAPI的区别
_beginThreadex创建多线程解读一、需要的头文件支持#include // for _beginthread()需要的设置:ProjectàSetting-->C/C++-->User run-time library 选择Debug Multithreaded 或者Multithreaded。即使用: MT或MTD。源码如下:[cpp] vie转载 2013-11-14 16:41:07 · 824 阅读 · 0 评论 -
Visual Studio 2012 C++ lambda表达式
C++lambda表达式lambda表达式C++ 语言中的lambda表达式在很多情况下提供了函数对象的另一种实现机制。Lambda表达式并不是STL所特有的,但它广泛应用于这一环境中。Lambda是表达式是定义一个没有名称、也不需要显示类定义的函数对象。Lambda表达式一般作为一种手段,用来将函数作为实参传递到另一个函数。相比于定义和创建一个常规的函数对象而言,lambda表达式非转载 2013-02-26 21:23:43 · 958 阅读 · 0 评论 -
operator new的三种运算形式
(1)new有三种使用方式:plain new、nothrow new、placement new.1.plain new/delete.普通的new,定义如下:void *operator new(std::size_t) throw(std::bad_alloc);void operator delete(void*) throw();注:标准C++ plain new失败后抛转载 2013-02-26 22:12:16 · 425 阅读 · 0 评论 -
模板的编译模式
1.函数模版的编译模式分两种:完全包含编译模式和局部编译模式(需要用export关键字)2.不同的编译器对这两种编译模式的支持各不相同,但一般都支持完全包含编译模式,具体支持情况需要参照具体使用的编译器文档模版函数和普通函数在使用的时候有一定的区别:(1)普通函数在使用的源文件中直接include该函数的声明即可(2)模版函数在使用的源文件中既要include模版函数的声明,也转载 2013-01-23 20:55:42 · 300 阅读 · 0 评论 -
STL中bind库使用
如果大家不了解了STL中的bind的话,可以先看一下下面的二中对STL:::bind1st的分析。通过对比我们就可以清楚的明白为什么要有boost了。一、Boost.Bind 是这样的一个库,它简化了由C++标准中的 std::bind1st() 和 std::bind2nd()模板函数所提供的一个机制:将这些函数与几乎不限数量的参数一起使用,就可以得到指定签名的函数。 这种情形的转载 2013-01-23 20:57:28 · 2135 阅读 · 0 评论 -
C++变量和函数的声明和定义
++ 变量和函数的声明和定义 有一部分C++程序员对于多个源文件一起编译链接时,变量,函数或者类声明和实现到底如何定义模糊不清,现在分类澄清一下。 变量 (variable) 在C++中,变量声明(declaration)只有在使用extern关键字时才成立,其他情况下都是定义(definition),而在使用extern的同时给变量赋初始值,则声明变为定转载 2013-01-23 20:53:44 · 358 阅读 · 0 评论 -
C++库函数头文件
c++程序通常可以调用标准c++库中的大量函数。这些函数完成一些基本的服务,如输入和输出等,同时也为一些经常使用的操作提供了高效的实现代码。这些函数中含有大量的函数和类定义,以帮助程序员更好地使用标准c++库。标准c++库包含以下内容:,,,,,,,,,,,,or>,,,,,,,,,,,,,,ig>,,,,,,,,,,,,,tjmp>,,,,,,,,,和标准c++库的详转载 2013-01-24 13:13:48 · 789 阅读 · 0 评论 -
高手的C++学习忠告,虚心学习下~~
高手的C++学习忠告,虚心学习下~~1.把C++当成一门新的语言学习(和C没啥关系!真的。); 2.看《Thinking In C++》,不要看《C++变成死相》; 3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看; 4.不要被VC、BCB、BC、M转载 2013-01-26 10:50:31 · 323 阅读 · 0 评论 -
顺序容器vector,dequeue和list性能比较
Ladies & Gentlemem:大家好,这里是首届C++模板武道会的现场,本次武道会由beyond_ml做东,第一场解说员为beyond_ml。由于首次举办这样规模空前的盛会,难免有疏漏之处,还请各位高手不吝赐教。Beyond_ml有理啦。同时也欢迎各位大虾把此次武道会看做是一个虚基类,不断继承,派生出新的比赛。比赛开始:首先介绍比武参赛者:Vector:金山词霸翻译成:矢量转载 2013-01-26 11:04:17 · 3546 阅读 · 1 评论 -
C/C++位操作技巧
KeyWord: C/C++ 位操作 位操作技巧 判断奇偶 交换两数 变换符号 求绝对值 位操作压缩空间 筛素数 位操作趣味应用 位操作笔试面试位操作篇共分为基础篇和提高篇,基础篇主要对位操作进行全面总结,帮助大家梳理知识。提高篇则针对各大IT公司如微软、腾讯、百度、360等公司的笔试面试题作详细的解答,使大家能熟练应对在笔试面试中位操作题目。 下面就先来对位操作作个全面总结转载 2013-03-05 20:54:43 · 1465 阅读 · 0 评论 -
C/C++内存处理函数
以下的函数用于内存管理函数描述CopyMemory将一块内存从位置拷贝到另外一个位置FillMemory将指定内存块内容填充为指定数据GetWriteWatch查找已经被写入虚拟内存区域的页面地址GlobalMemoryStatus获得关于转载 2013-03-06 13:31:19 · 750 阅读 · 0 评论 -
什么是C++ traits?
今年网易最后一道C++笔试题是考了这样一道题目:C++的traits是什么机制,有什么用?请举例说明。 我没答上来,回来查了一下,才发现是和STL泛化编程相关的。从网上找来两篇候捷的大作一读,才有点明白。现在写下来,看我是否真的理解了。首先,我们来了解一下什么是泛化编程。 一般泛型编程时,比如我设计一个算法:templateI find(I first, I end转载 2013-02-23 21:23:05 · 2885 阅读 · 0 评论 -
typename 的两种用法
问题:在下面的 template declarations(模板声明)中 class 和 typename 有什么不同? template class Widget; // uses "class"template class Widget; // uses "typename" 答案:没什么不同。在声明一个 template type paramet转载 2013-03-08 15:41:48 · 2213 阅读 · 0 评论 -
C++STL之函数对象及谓词
C++STL之函数对象及谓词概述函数对象是重载()运算符的类类型对象,即该类实现operator()()函数。STL将一组标准的函数对象定义为模板,,可以使用它们来创建一个函数对象,其中overload()运算符函数使用我们的对象类型。如:STL定义模板less。如果将该模板实例化为less,我们就有了一个函数对象类型,实现operator()()来对myNumber类型的对象进行大小转载 2013-02-26 20:41:57 · 424 阅读 · 0 评论 -
预编译头文件
fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "stdafx.h错误描述:fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "stdafx.h"”?错误分析: 此错误发生的原因是编译器在寻找预编译指示头文件(默认#include "s转载 2013-11-04 10:45:21 · 534 阅读 · 0 评论