c/c++
王子力
星星之火,可以燎原
展开
-
c++中的external linkage和internal linkage的区别
http://stackoverflow.com/questions/1358400/what-is-external-linkage-and-internal-linkage-in-c原创 2012-03-08 13:48:15 · 773 阅读 · 0 评论 -
逆序一段文本算法
#include #include #include #include struct stackNode{ stackNode(std::string s) { this->val=s; next=NULL; } std::string val; stackNode * next;};struct strin原创 2012-03-30 19:42:26 · 362 阅读 · 0 评论 -
C语言strcpy函数实现
char * mystrcpy2( char *strDest, const char *strSrc ){assert( (strDest != NULL) && (strSrc != NULL) );char *address = strDest;while( (*strDest++ = * strSrc++) != '\0');return address;}原创 2012-03-30 19:43:48 · 566 阅读 · 1 评论 -
堆排序算法
#include #include #include #include void siftDown(int * str, int start, int end);void heapify(int * str,int count);void heapSort(int * str, int count);void printStr(int * str, int count);voi原创 2012-03-30 19:38:39 · 350 阅读 · 0 评论 -
virtual inheritance(解决多几继承中的diamond problem)
http://en.wikipedia.org/wiki/Virtual_inheritance原创 2012-03-30 21:53:30 · 610 阅读 · 0 评论 -
四对括号可以有多少种匹配排列方式?比如两对括号可以有两种:()()和(())
#include#includeusing namespace std;int howMany1s(unsigned int num){ int count=0; for(int i=0;i<8;i++) { if((num&0x1)==1) count++; num=num>>1; } ret原创 2012-03-30 19:31:27 · 1225 阅读 · 0 评论 -
算法题之两个数组和之差最小化
题目:有两个序列a,b,大小都为n,序列元素的值任意整数,无序;要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小。例如: var a=[100,99,98,1,2, 3];var b=[1, 2, 3, 4,5,40];源码:#include#includeusing namespace std;int myfabs(int a){原创 2012-03-30 19:35:37 · 1234 阅读 · 0 评论 -
fibonacci数列的矩阵算法
#include #include ///////////////////////////////////////////////////////////////////////// A 2 by 2 matrix///////////////////////////////////////////////////////////////////////struct Matrix2By原创 2012-03-30 19:37:22 · 747 阅读 · 0 评论 -
计算机笔试题:写一个函数,检查字符是否是整数,如果是,返回其整数值。(或者:怎样只用4行代码编写出一个从字符串到长整型的函数)
//#include "stdafx.h"#include #include #include #include using namespace std;long strtoint(char *str,int length);int main(int argc, char* argv[]){ int i=0; char str[100转载 2012-04-04 21:55:32 · 1653 阅读 · 0 评论 -
合并两个字符串A、B,A的后几个字节同B的前几个字节
/*给出一个函数来合并两个字符串A和B。字符串A的后几个字节和字符串B的前几个字节重叠。//*/#include #include #include using namespace std;void copystr(char pachar[], char pbchar[], int sza, int szb, char* &result);int main(){转载 2012-04-06 12:18:06 · 1599 阅读 · 0 评论 -
c++中内存分为以下几个区
一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 程序运行时由编译器自动分配,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。程序结束时由编译器自动释放。2、堆区(heap) — 在内存开辟另一块存储区域。一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全转载 2012-04-23 10:58:30 · 2544 阅读 · 1 评论 -
求二叉树中最远两个节点距离
http://blog.163.com/shi_shun/blog/static/2370784920109264337177/原创 2012-04-24 13:02:08 · 427 阅读 · 0 评论 -
大数乘法实现代码
#include #include using namespace std;void multiply(const char *a,const char *b);int main(){ //cout<<"hicjiajia"<<endl; string num1,num2; // 初始状态用string来存储大数 cout<<"Now, give m转载 2012-04-16 15:18:45 · 724 阅读 · 0 评论 -
c/c++运算符优先级表
http://www.swansontec.com/sopc.html原创 2012-04-16 16:52:47 · 351 阅读 · 0 评论 -
堆和栈的区别
一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局转载 2012-04-17 20:01:38 · 277 阅读 · 0 评论 -
指针和数组equal的一道题
char str1[] = "abc";char str2[] = "abc";const char str3[] = "abc";const char str4[] = "abc";const char *str5 = "abc";const char *str6 = "abc";char *str7 = "abc";char *str8 = "abc";原创 2012-04-17 21:12:32 · 358 阅读 · 0 评论 -
引用与指针区别C++
1) 引用必须被初始化,指针不必。 2) 引用初始化以后不能被改变,指针可以改变所指的对象。 3) 不存在指向空值的引用,但是存在指向空值的指针。原创 2012-04-17 21:04:25 · 278 阅读 · 0 评论 -
c++四种type cast(总结自c++ primar)
dynamic_cast:子类转父类时候用,const_cast:消除const和volatile属性,但不改变类型static_cast:当且仅当二者可以隐式转换时用reinterpret_cast:比较自由,但是也非万能的原创 2012-04-17 22:08:26 · 474 阅读 · 0 评论 -
什么叫多态
简单一句话:允许将子类类型的指针赋值给父类类型的指针原创 2012-04-21 17:51:16 · 328 阅读 · 0 评论 -
virtual destructor是干什么用的
简单讲就是如果在没有virtual destructor的情况下,delete一个子类只会调用父类的析构函数,而不会调用子类的析构函数,而有了virtual以后,就不会出现这个问题了。http://www.programmerinterview.com/index.php/c-cplusplus/virtual-destructors/原创 2012-04-21 17:44:20 · 2462 阅读 · 0 评论 -
构造函数不能为虚函数,析构函数能并且应该为虚函数
http://hi.baidu.com/dick_china/blog/item/66cfbfdfdeb9c4adcc1166df.html原创 2012-04-21 19:18:32 · 263 阅读 · 0 评论 -
web server和application server到底有什么区别?
简而言之,就是web server是处理HTTP请求的,而application server是通过各种协议处理业务逻辑的http://www.javaworld.com/javaworld/javaqa/2002-08/01-qa-0823-appvswebserver.html?page=1原创 2012-04-22 19:14:02 · 2532 阅读 · 0 评论 -
new和malloc的区别
new是个运算符,二malloc是个库函数;new自动调用类的构造函数,同样,delete自动调用类的析构函数;new不需要type casting,而malloc需要type casting;malloc失败返回null,二new失败抛出异常;http://wiki.answers.com/Q/What_is_difference_between_new_and_mall原创 2012-04-21 17:41:15 · 308 阅读 · 0 评论 -
when copy constructor called
The following cases may result in a call to a copy constructor:When an object is returned by valueWhen an object is passed (to a function) by value as an argumentWhen an object is thrownWhen an ob原创 2013-05-07 13:19:31 · 756 阅读 · 0 评论 -
leetcode之LRU实现
题目:Design and implement a data structure for Least Recently Used (LRU) cache. It should support the following operations: get and set.get(key) - Get the value (will always be positive) of th原创 2014-12-22 23:00:39 · 885 阅读 · 0 评论 -
leetcode之图片(矩阵)旋转
题目:You are given an n x n 2D matrix representing an image.Rotate the image by 90 degrees (clockwise).Follow up:Could you do this in-place?思路:题目的关键在in-place,否则就太容易了,为了达到in-place只能原创 2014-12-24 22:22:25 · 848 阅读 · 0 评论 -
leetcode之数组中找两数和为指定值
题目:Given an array of integers, find two numbers such that they add up to a specific target number.The function twoSum should return indices of the two numbers such that they add up to the ta原创 2014-12-25 22:53:13 · 1109 阅读 · 0 评论 -
leetcode之倒转一句话单词
题目:Given an input string, reverse the string word by word.For example,Given s = "the sky is blue",return "blue is sky the".click to show clarification.Clarification:What co原创 2014-12-25 21:56:56 · 857 阅读 · 0 评论 -
leetcode之找光棍数
题目:Given an array of integers, every element appears twice except for one. Find that single one.Note:Your algorithm should have a linear runtime complexity. Could you implement it without原创 2014-12-25 23:04:47 · 752 阅读 · 0 评论 -
leetcode之有随机指针的链表深拷贝
题目:Copy List with Random PointerA linked list is given such that each node contains an additional random pointer which could point to any node in the list or null.Return a deep copy of原创 2014-12-13 11:51:55 · 3309 阅读 · 0 评论 -
leetcode之判断是否BST二分搜索树
题目:Validate Binary Search TreeGiven a binary tree, determine if it is a valid binary search tree (BST).Assume a BST is defined as follows:The left subtree of a node contains only nod原创 2014-12-13 22:00:44 · 1290 阅读 · 0 评论 -
leetcode之判断两链表首次交汇节点
题目:Intersection of Two Linked ListsWrite a program to find the node at which the intersection of two singly linked lists begins.For example, the following two linked lists:A:原创 2014-12-13 22:09:31 · 563 阅读 · 0 评论