![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
zeroyl
这个作者很懒,什么都没留下…
展开
-
pragma comment的使用
转自:http://www.cppblog.com/xczhang/archive/2008/01/10/40866.html该宏放置一个注释到对象文件或者可执行文件。#pragma comment( comment-type [,"commentstring"] )comment-type是一个预定义的标识符,指定注释的类型,应该是compiler,exestr,lib,linker转载 2013-03-11 15:00:37 · 448 阅读 · 0 评论 -
C++中string类的详解
之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。 首先,为了在我们的程序中使用string类型转载 2014-06-13 15:13:55 · 509 阅读 · 0 评论 -
C++拷贝构造函数详解
一. 什么是拷贝构造函数首先对于普通类型的对象来说,它们之间的复制是很简单的,例如:[c-sharp] view plaincopyint a = 100; int b = a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。转载 2014-06-18 15:37:50 · 345 阅读 · 0 评论 -
二叉树的遍历
二叉树的非递归遍历 二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法,就要采用栈去模拟实现。在三种遍历中,前序和中序遍历的非递归算法都很容易实现,非递归后序遍历实现起来相对转载 2014-07-11 22:06:08 · 325 阅读 · 0 评论 -
递归面试题汇总
一、前言找工作面试时最喜欢问的是算法题,虽然我觉得有些取巧的算法题只是跟刷题量有关。但是为了找工作不得不加强算法,特别是基础算法,这是一个人基本功的体现。《算法导论》是不错的教材,不过大部头看起来确实需要发时间,到现在还只是大略看了一遍,很多推导过程没细心看下来,深以为憾,以后有时间还是要猛补。算法题中最能体现算法精髓的则非递归莫属了,我对递归一直总觉得是一知半解,为了加深转载 2014-07-12 17:17:44 · 781 阅读 · 0 评论 -
二叉搜索树删除节点
bool delete_BST(pnode p, int x) //返回一个标志,表示是否找到被删元素 { bool find = false; pnode q; p = BT; while(p && !find){ //寻找被删元素 if(x == p->val){ //找到被删元素 find = t转载 2014-07-13 17:09:54 · 439 阅读 · 0 评论 -
组合算法面试题
组合算法题往往有多个变种,如求一个集合的全部子集以及部分组合问题,这篇文章对这些常见的面试题做个汇总,权当做个记录,以免自己哪天忘了,难得到网路上去找。一、求一个集合的全部子集题目:给定一个集合s={a, b, c, d},试给出一个算法输出该集合的除了空集之外的全部子集。分析:我们知道,一个集合的子集数目跟它的元素数目有关,集合元素数目为n,则子集数目为2^n。如包含两个元素转载 2014-07-12 15:57:44 · 410 阅读 · 0 评论 -
中缀表达式转换为后缀表达式
一、后缀表达式求值后缀表达式也叫逆波兰表达式,其求值过程可以用到栈来辅助存储。假定待求值的后缀表达式为:6 5 2 3 + 8 * + 3 + *,则其求值过程如下:1)遍历表达式,遇到的数字首先放入栈中,此时栈如下所示:2)接着读到“+”,则弹出3和2,执行3+2,计算结果等于5,并将5压入到栈中。3)读到8,将其直接放入栈中。转载 2014-07-11 22:00:12 · 363 阅读 · 0 评论 -
信号量与PV操作
在计算机操作系统中,PV操作是进程管理中的难点。首先应弄清PV操作的含义:PV操作由P操作原语和V操作原语组成(原语是不可中断的过程),对信号量进行操作,具体定义如下: P(S):①将信号量S的值减1,即S=S-1; ②如果S³0,则该进程继续执行;否则该进程置为等待状态,排入等待队列。 V(S):①将信号量S的值加1,即S=S+1;转载 2014-08-08 12:43:39 · 608 阅读 · 1 评论 -
C/C++中static关键字作用总结
1.先来介绍它的第一条也是最重要的一条:隐藏。(static函数,static变量均可)当同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。举例来说明。同时编译两个源文件,一个是a.c,另一个是main.c。//a.cchar a = 'A'; // global variablevoid msg(){转载 2014-08-08 20:30:35 · 427 阅读 · 0 评论 -
数据库范式(1NF 2NF 3NF BCNF)详解一
数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入(insert)、删除(delete)和更新(update)操作异常。反之则是乱七八糟,不仅给数据库的编程人员制造麻烦,而且面目可憎,可能存储了大量不需要的冗余信息。 范式说明 1.1 第一范式(1NF)无重复的列 所谓第一范式(1NF)是指数据库表的每一列都是转载 2014-08-12 15:42:37 · 513 阅读 · 0 评论 -
static_cast, dynamic_cast, reinterpret_cast, const_cast区别比较
隐式转换(implicit conversion)short a=2000;int b;b=a;short是两字节,int是四字节,由short型转成int型是宽化转换(bit位数增多),编译器没有warning,如下图所示。宽化转换(如char到int,int到long long,int到float,float到double,int到double等)构成隐式转换,转载 2014-08-29 16:09:55 · 390 阅读 · 0 评论 -
map按值排序
在STL中,map是按键来排序的,但很多时候需要按值来排序。一种方法是将map转化为vector,然后排序。 tool.h[cpp] view plaincopy#ifndef TOOL_H #define TOOL_H #include #include #include #include转载 2014-07-01 21:56:20 · 470 阅读 · 0 评论 -
排序算法总结
一、插入排序 直接插入排序(Insertion Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。代码实现:#in转载 2014-07-18 10:14:36 · 469 阅读 · 0 评论 -
命名空间
转自:http://blog.chinaunix.net/uid-26404477-id-3088450.html1.命名空间的定义:以关键字namespace开始,其后接命名空间的名字:namespace cpp_primer { class Sales_item { /*...... */}; Sales_item转载 2013-03-11 15:36:54 · 473 阅读 · 0 评论 -
cerr
概念std::cerr是ISO C++标准错误输出流,对应于ISO C标准库的stderr。与std::cout不同,ISO C++要求当cerr被初始化后,cerr.flags() & unitbuf非零(保证流在每次输出操作后被刷新),且cerr.tie()返回&cout。[1]即cerr默认和cout同步但无缓冲。cerr与cout的区别cout对应于标准输出原创 2013-03-11 15:53:54 · 1338 阅读 · 0 评论 -
模板
转自:http://www.cnblogs.com/CaiNiaoZJ/archive/2011/08/15/2138705.html有以下这样3个求加法的函数: 1 int Add(int x,int y) 2 { 3 return x+y; 4 } 5 6 double Add(double x,double y) 7 { 8 return x+y; 9 }10 11转载 2013-03-11 19:22:11 · 374 阅读 · 0 评论 -
mt.exe : general error c101008a: Failed to save the updated manifest to the file
转自:http://www.cnblogs.com/ppboy_dxh/archive/2011/02/14/1954770.html解决方法:点class view中的工程,选右鍵,再点clean就可以了; 或者是 build->clean solusion也可以问题描述:When rebuilding projects, mt.exe randomly转载 2013-03-20 16:11:30 · 613 阅读 · 0 评论 -
C++主函数带参数问题及其在VS2010下如何设置
C++的main函数只能有这两种形式:int main(){}或者int main(int argc,char* argv[]){}实际上,在Windows环境下,这样也是能够通过编译的:void main(){}但是在Linux环境下,用下面程序测试,会出现错误:#includeusing namespace std;v原创 2013-05-08 20:11:38 · 2050 阅读 · 0 评论 -
创建和使用静态库
测试可用:http://www.cnblogs.com/rollenholt/archive/2012/04/14/2447021.html我们将创建的下一个库类型是静态库 (LIB)。 使用静态库是重用代码的一种绝佳方式。 您不必在自己创建的每个程序中重新实现同一例程,而只需对这些例程编写一次,然后从需要该功能的应用程序引用它们即可。本演练演示如何完成以下任务:转载 2013-11-26 21:26:23 · 487 阅读 · 0 评论 -
删除重复字符串
OJ.h#ifndef __OJ_HEAD__#define __OJ_HEAD__int GetResult(const char *input,char *output);#endifOJ.cpp#include "OJ.h"/*Description 给定一个字符串,将字符串中所有和前面重复多余的字符删除,其余字符保留,输出处理后的字符原创 2014-03-04 14:19:33 · 468 阅读 · 0 评论 -
字符串小写转换
int ProcessString(char * strInput,char *strOutput){ if(!strInput) return -1;//判断字符串是否为空 int index=0; while(*strInput) { if((('a'<=(*strInput))&&((*strInput)<='z'))||(('A'<=(*strInput))&&((*st原创 2014-03-04 15:29:53 · 507 阅读 · 0 评论 -
cin/cin.get()/cin.getline()/getline()/gets()/getchar()
学C++的时候,这几个输入函数弄的有点迷糊;这里做个小结,为了自己复习,也希望对后来者能有所帮助,如果有差错的地方还请各位多多指教(本文所有程序均通过VC 6.0运行)1、cin 2、cin.get() 3、cin.getline() 4、getline() 5、gets() 6、getchar()附:cin.ignore();cin.get()//跳过一个字符,例如不转载 2014-03-25 12:14:33 · 357 阅读 · 0 评论 -
C/C++“大数相加算法”
函数原型介绍:[cpp] view plaincopy// first和second:任意大小的十进制字符串整数,该函数主要解决超出int和long值域的大型整数加法运算 // first和second的取值范围:可以是"99999999999999999"、"-9999999999999999999"和"0"等 // result:存储转载 2014-06-24 10:08:03 · 1954 阅读 · 0 评论 -
两个队列实现一个栈
在C++ STL中有双向队列deque,当单向的来用就行,设有两个队列A和B,栈的push操作,直接push到A的队尾就行了。栈的pop操作时,将A中的队列依次取出放到B中,取到最后一个时,最后一个不要放到B中,直接删掉,再将B中的值依次放回A中。栈的top操作时,将A中的队列依次取出放到B中,取到最后一个时,将最后一个值记录下来,再将最后一个值放到B中,再将B中的值依次放回到A中。#转载 2014-07-17 22:24:29 · 405 阅读 · 0 评论 -
typedef和define的详细区别
typedef是一种在计算机编程语言中用来声明自定义数据类型,配合各种原有数据类型来达到简化编程的目的的类型定义关键字。 #define是预处理指令。下面让我们一起来看。typedef是C语言语句,其功能是用户为已有数据类型取“别名”。 例如: typedef int INTEGER; 这以后就可用INTEGER来代替int作整型变量的类型说明了,如:转载 2014-08-31 16:13:46 · 413 阅读 · 0 评论