c++
文章平均质量分 75
PegasusWang_
知乎 Python 后端工程师:
https://www.zhihu.com/people/pegasus-wang/activities
Python web 入坑指南作者:http://python-web-guide.readthedocs.io/zh/latest/
展开
-
Qt递归非递归遍历文件
Qt递归非递归遍历文件原创 2015-01-13 18:41:39 · 1471 阅读 · 0 评论 -
C++的头文件和实现文件分别写什么(转)
原文链接:http://www.cnblogs.com/ider/archive/2011/06/30/what_is_in_cpp_header_and_implementation_file.html在C++编程过程中,随着项目的越来越大,代码也会越来越多,并且难以管理和分析。于是,在C++中就要分出了头(.h)文件和实现(.cpp)文件,并且也有了Package的概念。对于以转载 2014-03-07 23:15:19 · 975 阅读 · 0 评论 -
为什么 C++ 中提倡尽量避免使用宏 #define(转)
为什么c++不提倡使用宏定义#define原创 2014-01-16 15:46:49 · 8197 阅读 · 0 评论 -
C++随机数--——生成任意范围内等概率随机数“足够好”的做法
原文链接:http://www.cnblogs.com/wei-li/archive/2012/10/04/2711629.html很容易想到一个简单的做法x = rand () % RANGE; /* Poor! return a random number in [0,RANGE) */ 这种做法有三个问题:1 rand()等概率返回[0, RAND_转载 2013-11-17 17:55:43 · 1358 阅读 · 0 评论 -
C++语言风格流变史(转)
c++编程风格进化史原创 2013-10-28 08:49:14 · 1752 阅读 · 1 评论 -
关于C/C++ 表达式求值顺序 未定义(转)
一篇很好的介绍求值次序的文章,具体链接未知。表达式的副作用运算符的优先级与结合性规定了表达式中相邻两个运算符的运算次序,但对于双目运算的操作数,C++没有规定他们的计算次序。例如,对于表达式: exp1 + exp2; 先计算 exp1 还是 exp2?不同的编译器有不同的做法。 在数学上,对于双目运算符,不论先计算原创 2013-10-19 17:34:09 · 1987 阅读 · 0 评论 -
C语言define用法详解(转)
#define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但学生在学习时往往不能 理解该命令的本质,总是在此处产生一些困惑,在编程时误用该命令,使得程序的运行与预期的目的不一致,或者在读别人写的程序时,把运行结果理解错误,这对 C语言的学习很不利。1 #define命令剖析1.1 #define的概念#define原创 2013-09-29 16:15:16 · 2280 阅读 · 0 评论 -
探寻C++最快的读取文件的方案std::ios::sync_with_stdio(false) (转)
原文链接:https://www.byvoid.com/blog/fast-readfile/在竞赛中,遇到大数据时,往往读文件成了程序运行速度的瓶颈,需要更快的读取方式。相信几乎所有的C++学习者都在cin机器缓慢的速度上栽过跟头,于是从此以后发誓不用cin读数据。还有人说Pascal的read语句的速度是C/C++中scanf比不上的,C++选手只能干着急。难道C++真的低Pascal原创 2013-10-10 16:33:32 · 1376 阅读 · 0 评论 -
__int64 与 long long的区别(acm)
//为了和DSP兼容,TSint64和TUint64设置成TSint40和TUint40一样的数//结果VC中还是认为是32位的,显然不合适//typedef signed long int TSint64;//typedef unsigned long int TUint64;//ANSI C中规定long long才能表示64位//参见:http://msdn.microsoft.原创 2013-09-22 12:17:58 · 1609 阅读 · 0 评论 -
vim缩进K&R和GNU代码风格(转)
vim缩进K&R和GNU代码风格原创 2014-03-15 08:49:08 · 3037 阅读 · 0 评论 -
学习C++:实践者的方法
学习C++:实践者的方法(Beta1)By 刘未鹏(pongba)C++的罗浮宫(http://blog.csdn.net/pongba)前言我的blog以前很长一段时间关注的都是C++中的技术&细节,乃至于读者和应者都寥寥。然而5月份的时候写的一篇“你应当如何学习C++”,阅读量却达到了3万多,在blog上所有文章中却是最高的(且远远超过了第二位);评论数转载 2014-03-30 12:46:40 · 9086 阅读 · 1 评论 -
腾讯面试题:A.txt和B.txt两个文件,A有1亿个qq号,B有100万个,用代码实现交、并、差
腾讯面试题:A.txt和B.txt两个文件,A有1亿个qq号,B有100万个,用代码实现交、并、差原创 2014-05-07 13:53:26 · 3582 阅读 · 0 评论 -
lambda表达式
lambda表达式原创 2014-11-25 17:13:16 · 1110 阅读 · 0 评论 -
ubuntu使用gtest单元测试框架
ubuntu使用gtest单元测试框架原创 2014-11-25 17:07:29 · 2615 阅读 · 0 评论 -
Linux/Unix用valgrind检测内存泄漏
Linux/Unix用valgrind检测内存泄漏原创 2014-09-17 22:48:01 · 2031 阅读 · 0 评论 -
智能指针的实现及原理
本文主要讨论C++程序设计的一种常用技术——智能指针(smart pointer),主要内容包括引用计数(reference count)和句柄类(handle class)。如果文中有错误或遗漏之处,敬请指出,谢谢! 作者: tyc611, 2007-02-01 当类中有指针成员时,一般有两种方式来管理指针成员:一是采用值型的方式管理,每个类对象都保留一份指针指转载 2014-06-14 23:38:46 · 849 阅读 · 0 评论 -
C\C++代码优化的27个建议
本文由 伯乐在线 - 周昌鸿 翻译自 cs.clemson.edu。欢迎加入技术翻译小组。转载请参见文章末尾处的要求。1. 记住阿姆达尔定律:funccost是函数func运行时间百分比,funcspeedup是你优化函数的运行的系数。所以,如果你优化了函数TriangleIntersect执行40%的运行时间,使它运行快了近两倍,而你的程序会运行快25%。这意味着不经转载 2014-05-24 20:08:26 · 873 阅读 · 0 评论 -
C++头文件的组织
C++头文件的组织转自:http://www.cnblogs.com/lidabo/archive/2012/04/17/2454568.htmlC++编译模式通常,在一个C++程序中,只包含两类文件——.cpp文件和.h文件。其中,.cpp文件被称作C++源文件,里面放的都是C++的源代码;而.h文件则被称作C++头文件,里面放的也是C++的源代码。C+ +语转载 2014-06-26 11:47:59 · 1245 阅读 · 0 评论 -
为什么不建议使用vector<bool>
为什么不建议使用vector<bool>原创 2014-04-11 12:05:22 · 2268 阅读 · 0 评论 -
char *s 与char s[]的区别
char *s 与char s[]的区别原创 2014-05-08 16:36:47 · 1129 阅读 · 0 评论 -
C++虚函数的原理及实现
虚函数是在类中被声明为virtual的成员函数,当编译器看到通过指针或引用调用此类函数时,对其执行晚绑定,即通过指针(或引用)指向的类的类型信息来决定该函数是哪个类的。通常此类指针或引用都声明为基类的,它可以指向基类或派生类的对象。 多态指同一个方法根据其所属的不同对象可以有不同的行为(根据自己理解,不知这么说是否严谨)。 举个例子说明虚函数、多态、早绑定和晚绑定: 李氏两兄妹(转载 2014-05-08 15:55:50 · 773 阅读 · 0 评论 -
c语言不用临时变量交换两个数程序分析
首先看这样一个程序int a, b;a = a + b;b = a - b; 此时b = (a + b) - b = a; (经过第一步a为a+b)a = a - b; 此时a = (a + b) - a = b; (经过第二步时b已为a)可见这个程序实现了a和b的交换。注意+和-互为逆运算,可以得到(a+b)-b=a,埋个伏笔先。在看这个例子:i原创 2013-06-19 19:28:15 · 2139 阅读 · 3 评论 -
c++好书推荐(部分)
c++ primer 第三版(图并不是第三版的)本书是久负盛名的C++经典教程,其内容是C++大师Stanley B. Lippman丰富的实践经验和C++标准委员会原负责人Josée Lajoie对C++标准深入理解的完美结合,已经帮助全球无数程序员学会了C++。本版对前一版进行了彻底的修订,内容经过了重新组织,更加入了C++ 先驱Barbara E. Moo在C++教学方面的真原创 2013-08-01 17:24:55 · 1452 阅读 · 0 评论 -
C++标准库简介(转)
C++标准库的所有头文件都没有扩展名。C++标准库的内容总共在50个标准头文件中定义,其中18个提供了C库的功能。 形式的标准头文件【 例外】其内容与ISO标准C包含的name.h头文件相同,但容纳了C++扩展的功能。在 形式标准的头文件中,与宏相关的名称在全局作用域中定义,其他名称在std命名空间中声明。在C++中还可以使用name.h形式的标准C库头文件名。C++标准库的内容分为10类:C原创 2013-06-19 19:28:37 · 850 阅读 · 0 评论 -
c,c++产生随机数详解
原文链接http://blog.csdn.net/chenyiming_1990/article/details/8648681在C语言中,rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后原创 2013-06-19 19:27:50 · 1180 阅读 · 0 评论 -
sizeof运算符详解
一、sizeof的概念 sizeof是C语言的一种单目操作符,如C语言的其他操作符++、--等。它并不是函数。sizeof操作符以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。操作数的存储大小由操作数的类型决定。二、sizeof的使用方法1、用于数据类型sizeof使用形式:sizeof(type); 注:数据类型必须用括号括住。如sizeof(int)。2、用原创 2013-06-19 19:27:48 · 878 阅读 · 0 评论 -
位运算(转自matrix67)
http://www.matrix67.com/blog/archives/263 (原文链接)什么是位运算? 程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算说穿了,就是直接对整数在内存中的二进制位进行操作。比如,and运算本来是一个逻辑运算符,但整数与整数之间也可以进行and运算。举个例子,6的二进制是110,11的二进制是1011,那么6 and 11原创 2013-06-19 19:27:43 · 1120 阅读 · 0 评论 -
STL<algorithm> sort函数详解(转)
http://www.cppblog.com/mzty/archive/2005/12/15/1770.html 详细解说 STL 排序(Sort)作者Winter 详细解说 STL 排序(Sort)0 前言: STL,为什么你必须掌握1 STL提供的Sort 算法1.1 所有sort算法介绍1.2 sort 中的比较函数1.3 sort 的原创 2013-06-19 19:27:38 · 1257 阅读 · 0 评论 -
STL学习之priority_queue适配器
priority_queue 优先队列是容器适配器类型,根据某些严格的弱排序条件,专门设计了第一个元素总最大元素的容器。 很像堆,可以检索最大的堆元素(在优先队列中的最顶的元素)并且可以无限制的插入元素。 优先队列作为容器适配器, 用一个具体的容器类的封装对象作为其底层容器,提供一个具体的访问容器元素的成员函数集合。元素都是从具体的容器的“尾部”进行弹原创 2013-06-19 19:27:36 · 886 阅读 · 0 评论 -
freopen()函数
转自moonlit 当我们求解acm题目时,通常在设计好算法和程序后,要在调试环境(例如VC等)中运行程序,输入测试数据,当能得到正确运行结果后,才将程序提交到oj中。但由于调试往往不能一次成功,每次运行时,都要重新输入一遍测试数据,对于有大量输入数据的题目,输入数据需要花费大量时间。 使用freopen函数可以解决测试数据输入问题,避免重复输入原创 2013-06-19 19:27:34 · 976 阅读 · 0 评论 -
C++函数对象count_if用法(转)
标准库里的count_if可以统计容器中满足特定条件的元素的个数。例如要统计一个整数vector——ivec中正数的个数,可以先写一个返回类型为bool,含有一个int参数的条件函数:bool pred(int val)...{ return val>0;} 之后可以用count_if(ivec.begin(),ivec.end(),pred)计算出正整数的个数。但这个方原创 2013-06-19 19:27:16 · 1954 阅读 · 0 评论 -
c++高精度模板
1 #include 2 #includestring> 3 #include 4 #include 5 using namespace std; 6 7 #define MAXN 9999 8 #define MAXSIZE 10 9 #define DLEN 4 10 11 class BigNum 12 { 13原创 2013-06-19 19:26:26 · 812 阅读 · 0 评论 -
C/C++的64位整型(转)
在C/C++中,64为整型一直是一种没有确定规范的数据类型。现今主流的编译器中,对64为整型的支持也是标准不一,形态各异。一般来说,64位整型的定义方式有long long和__int64两种(VC还支持_int64),而输出到标准输出方式有printf("%lld",a),printf("%I64d",a),和cout 本文讨论的是五种常用的C/C++编译器对64位整型的支持,这五种编译器分原创 2013-06-19 19:29:02 · 1390 阅读 · 0 评论 -
C++ string 用法详解(转)
C++ string 详解任何人对本文进行引用都要标明作者是Nicolai M.Josuttis///////////////////////////////////////////////////////////////////////////////////C++ 语言是个十分优秀的语言,但优秀并不表示完美。还是有许多人不愿意使用C或者C++,为什么?原因众多,其中之一就是C/C+原创 2013-06-19 19:29:05 · 1294 阅读 · 0 评论 -
STL函数对象(转)
STL函数对象 STL不但使我们能够更轻松、更快捷地编写复杂的代码,而且使编写的代码既标准又高度优化。std::vectorstd::string> names;// ...std::sort(names.begin(), names.end()); STL另一个优雅之处在于高度可配置。在以上的代码中,使用string的小于()操作符对vector中的s原创 2013-07-07 10:10:18 · 1395 阅读 · 0 评论 -
c++ string用法详解
之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。 好了,进入正题………首先,为了在我们的程序中使用s转载 2013-08-16 19:17:08 · 977 阅读 · 0 评论 -
STLmap用法详解
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有转载 2013-08-16 19:15:42 · 1023 阅读 · 0 评论 -
c\c++中单冒号(:)和双冒号(::)的用法(转)
一.单冒号(:) 有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。这样就可以把几个不同的原创 2013-08-23 12:02:25 · 1258 阅读 · 0 评论 -
c和c++关于负数取模的问题
在不同的语言中,对负数执行取模运算,结果有可能会是不同的。例如,(-11)%5在python中计算的结果是4,而在C(C99)中计算的结果则是-1。 truncate除法 && floor除法 在大多数编程语言中,如果整数a不是整数b的整数倍数的话,那么a、b做除法产生的实际结果的小数部分将会被截除,这个过程称为截尾(truncation)。如果除法的结果是正数的话,那么一般的编程语言都会把结原创 2013-06-19 19:27:32 · 2925 阅读 · 0 评论 -
void main()是错的!
很多人甚至市面上的一些书籍,都使用了void main( ),其实这是错误的。C/C++中从来没有定义过void main( )。C++之父Bjarne Stroustrup在他的主页上的FAQ中明确地写着The definition void main( ) { /* ... */ } is not and never has been C++, nor has it even been C.(原创 2013-06-19 19:27:45 · 1970 阅读 · 0 评论