
C++
文章平均质量分 56
Savitch
I have nothing to offer but blood toil tears and sweat
展开
-
#pragma comment使用
转载:http://www.cnitblog.com/ictfly/archive/2011/06/27/74454.html编程经常碰到,理解的总不是很透彻,在这里查阅资料总结一下! 在编写程序的时候,我们常用到#pragma指令来设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma once :这是一个比较常用的指令,只要在头文件的最开始加入这条指令就能够保证转载 2014-03-24 23:11:02 · 378 阅读 · 0 评论 -
C/C++变量在内存中的分布
转载:http://blog.youkuaiyun.com/morewindows/article/details/6851681C/C++变量在内存中的分布在笔试时经常考到,虽然简单,但也容易忘记,因此在这作个总结,以加深印象。先写一个测试程序:[cpp] view plaincopy#include #include转载 2013-10-27 15:13:16 · 309 阅读 · 0 评论 -
关于赋值和相等两者的优先顺序
······ #includeusing namespace std;int main(){int i=3,j=5;if(i=j==3)coutelsecoutif(i=j==5)coutsystem("pause");return 0;}输出: 0 5gagag由这个测试用例知:赋值运算优先级较低。······原创 2013-10-15 22:21:16 · 2510 阅读 · 0 评论 -
iostate知识要点
最后来看看如何利用rdstate()函数和输入状态标记位常量来判断输入流的状态: #include using namespace std; int main() { int a; cin>>a; cout if(cin.rdstate() == ios::goodbit) { cout转载 2013-10-13 18:50:52 · 928 阅读 · 0 评论 -
void main()误区
转载:http://blog.youkuaiyun.com/kennyrose/article/details/7531718很多人甚至市面上的一些书籍,都使用了void main( ) ,其实这是错误的。C/C++ 中从来没有定义过void main( ) .C++ 之父 Bjarne Stroustrup 在他的主页上的 FAQ 中明确地写着 The definition void m转载 2013-10-13 18:49:05 · 331 阅读 · 0 评论 -
C++的异常处理
一、什么是异常处理 一句话:异常处理就是处理程序中的错误。二、为什么需要异常处理,以及异常处理的基本思想 C++之父Bjarne Stroustrup在《The C++ Programming Language》中讲到:一个库的作者可以检测出发生了运行时错误,但一般不知道怎样去处理它们(因为和用户具体的应用有关);另一方面,库的用户知道怎样处理这些错转载 2013-09-27 20:49:26 · 309 阅读 · 0 评论 -
C++——模板特化和偏特化
1.引言C++中的模板分为类模板和函数模板,虽然它引进到C++标准中的时间不是很长,但是却得到了广泛的应用,这一点在STL中有着充分的体现。目前,STL在C++社区中得到了广泛的关注、应用和研究。理解和掌握模板是学习、应用和研究以及扩充STL的基础。而STL模板实例中又充斥着大量的模板特化和偏特化。2.模板的定义(1) 类模板定义一个栈的类模板,它可以用来容纳不同的数据类型转载 2013-09-27 17:22:06 · 343 阅读 · 0 评论 -
pImpl的原理
转载: http://blog.youkuaiyun.com/armman/article/details/1737719城门失火殃及池鱼pImpl惯用手法的运用方式大家都很清楚,其主要作用是解开类的使用接口和实现的耦合。如果不使用pImpl惯用手法,代码会像这样: //c.hpp #includeclass C {转载 2013-09-27 16:34:00 · 330 阅读 · 0 评论 -
关于虚函数的经典程序
#include using namespace std;class IHello{public:virtual void Hello()= 0;};class IWorld{public:virtual void World()= 0;};class HelloWorld:public IHello, public IWorld{原创 2013-09-20 21:11:48 · 483 阅读 · 1 评论 -
&和&&的区别
&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,例如,对于if(str != null && !str.equals(“”))表达式,当str为null时,后面的表达式不会执行,所以不会出现N原创 2013-11-06 16:27:59 · 394 阅读 · 0 评论 -
C++中头文件(.h)和源文件(.cpp)都应该写些什么
转载:http://blog.youkuaiyun.com/lyanliu/article/details/2195632这个问题在许多C++程序员看来会很搞笑,“这么简单的问题还用得着你废话!”。但是由于本人生性愚钝,学C++的时候,确实花了很久的时间都搞不明白,只是会写一个文件,但不会写一个工程。而用C++编写比较大型的项目时,文件的分割管理确实确实是非常必要的 。下面就非常简洁明了地谈谈头文件(转载 2014-02-21 22:13:13 · 316 阅读 · 0 评论 -
C++中的头文件和源文件
转载:http://qimo601.iteye.com/blog/1520104一、C++编译模式通常,在一个C++程序中,只包含两类文件——.cpp文件和.h文件。其中,.cpp文件被称作C++源文件,里面放的都是C++的源代码;而.h文件则被称作C++头文件,里面放的也是C++的源代码。C+ +语言支持“分别编译”(separate compilation)。也就是转载 2014-02-21 22:53:34 · 270 阅读 · 0 评论 -
C++ / vs 如何生成自己的静态库(lib)文件
转:http://panxq0809.iteye.com/blog/691225打开VS2005,建立一个win32控制台程序,然后打开项目--LibTest属性(如图1),打开LibTest属性页(如图2),在右边配置类型处选择静态库(lib)。然后我们就可以写我们的头文件和cpp源文件了。写完后编译下就可以在目录下找到相应的lib文件了。图一图二 在这里我转载 2014-04-03 14:36:00 · 404 阅读 · 0 评论 -
C语言字符串函数大全
转:https://www.byvoid.com/blog/c-string程序开头要声明#include 函数名: stpcpy功 能: 拷贝一个字符串到另一个用 法: char *stpcpy(char *destin, char *source);程序例:#include #include int main(void){ char string[10];转载 2014-03-31 15:13:03 · 214 阅读 · 0 评论 -
回车、换行、空格的ASCII码值—(附ASCII码表)
转载:http://blog.youkuaiyun.com/songjinshi/article/details/7868866回车、换行、空格的ASCII码值回车,ASCII码13换行,ASCII码10空格,ASCII码32Return = CR = 13 = '\x0d'NewLine = LF = 10 = '\x0a'转载 2014-02-25 14:00:42 · 615 阅读 · 0 评论 -
回车和换行
作者: 阮一峰日期: 2006年4月30日今天,我总算搞清楚"回车"(carriage return)和"换行"(line feed)这两个概念的来历和区别了。在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒转载 2014-02-25 13:58:21 · 271 阅读 · 0 评论 -
c语言函数的英文全称
http://www.roesler-ac.de/wolfram/acro/Fct.htm原创 2014-02-25 11:01:05 · 1096 阅读 · 0 评论 -
关于函数strtok和strtok_r的使用要点和实现原理(二)
转载:http://blog.youkuaiyun.com/liuintermilan/article/details/6283705(一)中已经介绍了使用strtok函数的一些注意事项,本篇将介绍strtok的一个应用并引出strtok_r函数。 1.一个应用实例网络上一个比较经典的例子是将字符串切分,存入结构体中。如,现有结构体typedef struct pers转载 2014-02-25 00:45:13 · 224 阅读 · 0 评论 -
关于函数strtok和strtok_r的使用要点和实现原理(一)
转载:http://blog.youkuaiyun.com/liuintermilan/article/details/6280816strtok函数的使用是一个老生常谈的问题了。该函数的作用很大,争议也很大。以下的表述可能与一些资料有区别或者说与你原来的认识有差异,因此,我尽量以实验为证。交代一下实验环境是必要的,winxp+vc6.0,一个极端平民化的实验环境。本文中使用的源代码大部分来自于网络,转载 2014-02-25 00:44:08 · 239 阅读 · 0 评论 -
C语言的变量作用域及头文件
C语言的变量作用域及头文件关于C语言的变量作用域和头文件的问题都是比较基础的问题,但是这些问题在实际使用过程中的概念不清和混乱会对一个多文件的项目的组织结构及文件结构造成很大的影响,使得项目本身的脉络也变的很模糊。在项目中,多人相互协作完成的项目,这个问题就更加突出。所以也就有了我写(总结)这个文档。 一.C语言的变量作用域及相关1.作用域:作用域描述了程序转载 2014-02-22 00:06:10 · 533 阅读 · 0 评论 -
头文件不应该含有非inline函数或对象的定义
头文件不应该含有非inline函数或对象的定义。....但是符号常量定义以及inline函数定义是特殊的定义。符号常量和inline函数可以被定义多次。 1.符号常量:在程序编译期间,在可能的情况下,符号常量的值会代替该名字的出现,这个替代过程被称为常量折叠(constant folding)。 ....尽管理想情况下,一个具有初始值的常量可以被包含在多个不同的文件中,原创 2013-10-09 20:49:00 · 595 阅读 · 0 评论 -
逗号表达式执行的顺序—从左到右
int main(int argc, char ** argv){ int x = 0, y = 0; x = ( x = y + 1, y++, y + 3); printf("x=%d y=%d\n", x, y); return 0;}得到输出:x=4 y=1对于这一句“x =原创 2013-10-09 21:38:58 · 5666 阅读 · 0 评论 -
auto_ptr 源码 极其解析
转自 http://baike.baidu.com/link?url=UMhUcMPGPFPhqwGQTTuISe_pdlLpjmjP5y9_lpxhBi6ELVbkvE0JZbJjQLH-quA-PKlatXAC2othjZ2rRupc0aauto_ptrC++的auto_ptr所做的事情,就是动态分配对象以及当对象不再需要时自动执行清理。它的源代码:templa转载 2013-09-22 10:46:36 · 376 阅读 · 0 评论 -
虚函数的限制
1.static成员函数不能是虚函数 虚函数存在于有继承关系的类的对象中,在派生类中覆盖了基类的虚函数,实现了动态绑定。通过基类的指针或引用调用派生类版本。static成员函数在继承关系中只存在一份。是属于类的,而不受限于某个对象,不存在this指针。在派生类中的继承的static函数和基类是一个函数。因此~。2.inline成员函数不能是虚函数 函数的inli转载 2013-08-06 12:00:49 · 431 阅读 · 0 评论 -
hdoj 1071 The Area 求面积
题意: 给一条抛物线跟一条直线的两个交点坐标,加上抛物线的顶点坐标,求围起来的面积分析: 面积用积分求了之后相减就可以。 必须要有两个线的方程。于是若干时间求a.b.c. k.b~~~ 依次求出来就好了用笔算a,b,c花了若干时间…… 不过这就是数学题嘛。 还好高中知识还记得~~ #include #include #include转载 2013-07-17 13:48:21 · 348 阅读 · 0 评论 -
能被3整除的Fibonacci的下标号
这是另外一种斐波那切数列.F(0) = 7, F(1) = 11, F(n) = F(n-1) + F(n-2) (n>=2) 每行输入一个数n。(n <= 10^9 ) 每行输出一个yes如果F(n)能被3整除,否则输出no Sample Input012345Sample Outputnonoyesnonono这个题目主要让我们找规律的。用到的公式是转载 2013-07-17 10:54:46 · 507 阅读 · 0 评论 -
cout和printf的区别
#include "iostream.h"#include "stdio.h"int main(){ int a; for(a=0;a<24;a++) { printf("++++++++++++\n"); cout<<"============\n"; printf("############\n"); // cout<<endl; } print转载 2013-07-16 23:36:11 · 475 阅读 · 0 评论 -
整理cin.getline与getline函数
1、两个函数虽然看上去名称相同都是getline,但它们却分属于不同的类中的成员函数。cin.getline(charr,20);的getline是输入流对象的成员函数,即istream::getline,使用时需头文件#include getline(cin,str);的getline是string类对象的成员函数,即string::getline,使用时需头文件#include ,注意转载 2013-07-16 10:39:02 · 473 阅读 · 0 评论 -
数组名和数组名取地址的区别
#include int a[2] = {1,2};int main(){ printf("a = %p\n", a); // I printf("&a = %p\n", &a); // II printf("a + 1 = %p\n", a + 1);// III printf("&a + 1 = %p\n", &a + 1)转载 2013-07-15 18:31:58 · 288 阅读 · 0 评论 -
new delete 来申请动态二维数组空间
学c++的时候, 课本上没说介绍怎么用new delete 来申请动态二维数组空间, 网上也找不到简洁的代码, 于是自己写出如下:以二维int型数组为例——cin>>m>>n; //m,n分别为行数和列数int ** p;p = new int*[m]; for( int i = 0; i p[i] = new int[n];然后就可以如二维数组给p[i][j]赋转载 2013-07-10 15:01:08 · 273 阅读 · 0 评论 -
常量指针 和 指针常量
常量指针 和 指针常量 2006年3月12日 植树节 在C++的学习中,有人经常搞不清楚“常量指针”和“指针常量”这两个概念。其实简单一点讲,“常量指针”所指向的地址上的数据是常量,而“指针常量”所指向的地址是常量,地址上面的数据是转载 2013-07-07 19:09:34 · 233 阅读 · 0 评论 -
vector 源码
// Filename: stl_vector.h /* * * Copyright (c) 1994 * Hewlett-Packard Company * * Permission to use, copy, modify, distribute and sell this software * and its documentation for a转载 2013-08-07 20:33:05 · 284 阅读 · 0 评论 -
C++ Primer 第15章例子-文本查询程序
#include"stdafx.h"#include#include#include#include#include#include#include#include#includeusing namespace std;/*textquery is constructed;it performs some actions : firstly read ea转载 2013-08-08 12:03:36 · 470 阅读 · 0 评论 -
VC编程-预编译头文件(precompiled header)
预编译头文件(precompiled header)今天在写程序的时候,突然发现要测试的代码是用c写的,还是用gcc编译的,可是我已经建立了测试的相关环境,没办法,只能一步步的改了,将相关的头文件、结构和变量移植以后,编译了一下(只编译了C文件),竟然出错,出错信息为:fatal error C1010: unexpected end of file while looking f转载 2013-09-13 20:55:07 · 517 阅读 · 0 评论 -
AutoPtr 的局限性
因为std::auto_ptr是转移语义,而STL容器的元素必须是值语义,也就是拷贝语义的。比如,STL容器都是以副本的形式来保存元素。std::vector v;int a = 1;v.push_back(a);v[0]也是值为1的int,但不是a..仅仅是一个副本.a的值也并未被改变.std::auto_ptr p1(new int);std::auto_p转载 2013-09-22 11:02:40 · 319 阅读 · 0 评论 -
c++ 空类大小不为0的原因
初学者在学习面向对象的程序设计语言时,或多或少的都些疑问,我们写的代码与最终生编译成的代码却大相径庭,我们并不知道编译器在后台做了什么工作.这些都是由于我们仅停留在语言层的原因,所谓语言层就是教会我们一些基本的语法法则,但不会告诉我们为什么这么做?今天和大家谈的一点感悟就是我在学习编程过程中的一点经验,是编译器这方面的一个具体功能. 首先:我们要知道什么是类的实例化,所谓类的转载 2013-09-20 19:47:28 · 325 阅读 · 0 评论 -
C++ 虚函数表解析
转载自http://blog.youkuaiyun.com/haoel/article/details/1948051/C++ 虚函数表解析 陈皓http://blog.youkuaiyun.com/haoel 前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以转载 2013-09-20 15:20:31 · 307 阅读 · 0 评论 -
c++编译器和连接器介绍
有些人写C/C++(以下假定为C++)程序,对unresolved external link或者duplicated external simbol的错误信息不知所措(因为这样的错误信息不能定位到某一行)。或者对语言的一些部分不知道为什么要(或者不要)这样那样设计。了解本文之后,或许会有一些答案。 首先看看我们是如何写一个程序的。如果你在使用某种IDE(Visual Studio,El转载 2013-09-20 09:41:38 · 533 阅读 · 0 评论 -
c++ pair类型的基本问题
1 首先pair类型是在utility的头文件中的。2 pair的初始化和创建 有两种方式创建pair (1) pairp1;(2) pairp2(v1,v2); 当采用第一种时,则调用默认的构造函数对其成员进行初始化,如int行变量会是0 。3 pair对象的比较 p14 取出pair的值 通过p.first ,p.second 或者相应的指针也可。5原创 2013-10-04 21:33:46 · 438 阅读 · 0 评论 -
小品: 关于"C++引用"
此文缘起我看了这篇文章:http://blog.youkuaiyun.com/newslxw/archive/2006/08/08/1038972.aspx 还记得当年读书时, 牛牛的C++老师告诉我: "引用, 其实就是别名, 与其所引用的对象完全等价". 可是, 我还是有这点疑问: "等价的含义, 是指的什么? 难道是说在最底层的实现上两者直接就是使用的同一个内存位置吗? " 比如下面的这段代转载 2013-09-19 20:04:44 · 334 阅读 · 0 评论