- 博客(64)
- 资源 (12)
- 收藏
- 关注
原创 STL之traits编程技法
迭代器概念与traits编程技巧迭代器:STL的中心思想在于:将数据容器和算法分开,彼此独立设计,最后再以一贴胶着剂将他们撮合在一起。这边是迭代器的功能。迭代器是一种行为类似指针的对象,而指针的各种行为中最常见也最重要的便是内容提领和成员访问,因此迭代器最主要的编程工作就是对operator*和operator->进行重载工作。关于这一点C++标注程序库有一个auto_ptr可供我们参
2014-03-31 20:42:15 1234
原创 STL空间配置器
空间配置器标准规范规定,STL空间配置器是一个名为allocator的模板类,同时也规定了它的必要接口,也就是说allocator类定义形式如下。其中接口allocator::allocate(),allocator::deallocate(),allocator::construct,allocator::destory()这四个接口及其重要。所以我们这里主要分析这四个接口。此外,rebin
2014-03-27 12:54:47 1144 3
转载 全面解析C++中的new,operator new与placement new
全面解析C++中的new,operator new与placement new 以下是C++中的new,operator new与placement new进行了详细的说明介绍,需要的朋友可以过来参考下new operator/delete operator就是new和delete操作符,而operator new/operator delete是函数。new operat
2014-03-27 12:54:10 1308
转载 allocator::rebind详解
rebind的本质应该这么说:给定了类型T的分配器Allocator=allocator,现在想根据相同的策略得到另外一个类型U的分配器allocator,那么allocator=allocator::Rebind::other.之所以要提供rebind接口,是因为容器只知道模板参数名Allocator,而不知其具体实现,容器只知道这样三个事情:1、Alocator是T的分配器,但其内部实
2014-03-27 08:53:08 7288
原创 STL之空间配置器分析
本文主要讲解了SGI STL中容器空间配置的实现。标准规范规定,STL空间配置器是一个名为allocator的模板类,同时也规定了它的必要接口,也就是说allocator类定义形式如下。其中接口allocator::allocate(),allocator::deallocate(),allocator::construct,allocator::destory()这四个接口及其重要。所以
2014-03-21 22:17:39 848
原创 从考试成绩中划出及格线
/******************************************************************个学生考完期末试评卷成后,老师需要划出及格线,求如下:(1)及格线是 10 的倍数(2)保证至少有60%的学生及格;(3)如果所有的学生都高于60分,则及格线为 60 分输入10个整数:取值0~100输出及格分数线,10的倍数*************
2014-03-21 20:43:00 2044 1
原创 最后一题:树中两个节点的最低公共祖先
/*************************************************************************题目:树中两个节点的最低公共祖先*************************************************************************/#include#include #includeusin
2014-03-19 20:55:11 519
原创 将字符串转换成整数
/**********************************************************************题目:写一个函数StrToInt,实现把字符串转换成整数的功能,类似atoi函数**********************************************************************/#include #incl
2014-03-19 20:49:40 714
原创 不能被继承的类
/**********************************************************************题目:用C++设计一个不能被继承的类**********************************************************************/#include // ====================方法一
2014-03-19 19:57:04 520
原创 不用加减乘除做加法
/****************************************************************题目:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。****************************************************************///对数字做运算,除了四则运算,就只剩下位运算
2014-03-19 19:52:22 762
原创 求1+2+。。。+n
/*********************************************************************题目:求1+2+3+....+n,要求不能使用乘除法,for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。****************************************************
2014-03-19 19:47:13 799
原创 圆圈中最后剩下的数字
/************************************************************************题目:0,1,...,n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。***********************************************************
2014-03-19 18:56:47 829
原创 扑克牌的顺子
/*************************************************************************题目:从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2-10为数字本身,A为1,J为11,Q为12,K为13,而大、小王可以看成任意数字。*******************************************
2014-03-19 16:06:36 663
原创 n个骰子的点数
/***********************************************************************题目:把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。***********************************************************************//*
2014-03-19 15:46:29 1000
原创 左旋转字符串
/*********************************************************************题目二:字符串的左旋转操作是把字符串前面的若干个字符转移字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如输入字符串"abcdefg"和数字2,该函数将返回左旋转2位得到的结果"cdefgab"。***********************
2014-03-18 20:59:33 484
原创 翻转单词顺序
/************************************************************************题目一:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student."则输出"student. a am I"。**********************
2014-03-18 20:35:59 595
原创 和为s的连续正数序列
/****************************************************************输入一个正数s,打印出所有和为s的连续正数序列(至少含有两个数)。例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以结果打印出3个连续序列1~5,4~6和7~8。*****************************************
2014-03-18 19:52:40 742
原创 何为s的两个数字
/*******************************************************************题目一:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得他们的和正好是s。如果有多对数字的和等于s,输出任意一对即可。****************************************************************
2014-03-18 19:24:08 918
原创 数组中只出现一次的数字
/***********************************************************************题目:一个整型数组除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(N),空间复杂度为O(1)。*****************************************************
2014-03-18 15:51:35 729
原创 二叉树的深度
/***************************************************************题目一:输入一颗二叉树的根节点,求该数的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。***************************************************************/
2014-03-18 10:23:11 1133
原创 数字在排序数组中出现的次数
/*************************************************************************题目:统计一个数字在排序数组中出现的次数。例如输入排序数组{1,2,3,3,3,3,4,5}和数字3,由于3在这个数组中出现了4次,因此输出4。***************************************************
2014-03-18 09:42:21 712
原创 两个链表的第一个公共节点
/********************************************************************题目:输入两个链表,找出它们的第一个公共节点。********************************************************************//*解题思路:先遍历两个链表得到他们的长度,就能知道哪个链表较长,以
2014-03-17 21:22:56 719
原创 数组中的逆序对
/******************************************************************题目:在数组中的两个数字如果前面的一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。*****************************************************************
2014-03-17 19:27:30 683
原创 第一个只出现一次的字符
/**************************************************************************题目:在字符串中找出第一个只出现一次的字符。如输入“abaccdeff”,则输出'b'。**************************************************************************//*
2014-03-15 19:20:36 1207
原创 丑数
/*********************************************************************题目:我们把只包含因子2、3和5的数称作丑数。求按从小到大的顺序的第1500个丑数。例如6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当做第一个丑数。********************************************
2014-03-15 18:40:45 666
原创 把数组排成最小的数
/******************************************************************题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这3个数字能排成的最小数字32132。****************************************
2014-03-15 14:56:56 885 1
原创 从1到n整数中1出现的次数
题目:输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数。例如输入12,从1到12这些整数中包含1的数字有1,10,1,11和12,1一共出现了5次。解决思路:设N = abcde ,其中abcde分别为十进制中各位上的数字。如果要计算百位上1出现的次数,它要受到3方面的影响:百位上的数字,百位一下(低位)上的数字,百位一上(高位)上的数字。如果百位上数字为0,百位上可能出现1
2014-03-15 14:08:06 734
原创 连续子数组的最大和
/*********************************************************************题目:输入一个整型数组,数组里有整数也有负数。数组中一个或连续的多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(N)。*********************************************************
2014-03-15 10:20:48 597
原创 最小的k个数字
/*****************************************************************题目:输入n个整数,找出其中最小的k个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。*****************************************************************/#
2014-03-14 21:40:16 732
原创 数组中出现次数超过一半的数字
/*****************************************************************题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。********************************
2014-03-14 16:45:41 712
原创 字符串的排列
/***************************************************************题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由a、b、c所能排列出来的所有字符串abc、acb、bac、cab和cba。****************************************************
2014-03-14 11:12:57 751
原创 二叉搜索树与双向链表
/**************************************************输入一颗二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。***************************************************/#includestruct BinaryTreeNode{ i
2014-03-13 22:13:48 587
原创 复杂链表的复制
题目:请实现函数ComplexListNode* clone(ComplexListNode* pHead),复制一个复杂链表。在复杂链表中,每个节点除了有一个m_pNext指针指向下一个节点外,还有以一个m_pSibling指向链表中的任意节点或者NULL。节点定义如下:在complexList.h中定义#pragma oncestruct ComplexListNode{
2014-03-13 21:15:12 661
原创 二叉树中和为某一值的路径
/******************************************************************题目:输入一颗二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。*************************************************************
2014-03-13 20:10:13 644
原创 二叉搜索树的后序遍历序列
/*************************************************************题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字互不相同。***********************************************************
2014-03-12 21:11:58 690
原创 从上到下打印二叉树(层序遍历,广度优先遍历二叉树)
//从上往下打印二叉树(层序遍历,广度优先遍历)#include#includeusing namespace std;struct BinaryTreeNode{ int m_nValue; BinaryTreeNode* m_pLef; BinaryTreeNode* m_pRight;};BinaryTreeNode* createBinaryTreeNode(int
2014-03-12 19:53:35 1487
原创 栈的压入、弹出序列
/************************************************************题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5为某栈的压入顺序,则4,5,3,2,1是该栈对应的一个弹出序列;而4,3,5,1,2,就不不可能是对应的弹出序列。****
2014-03-12 19:05:28 832
原创 包含min的栈
/***************************************************************题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min、push及pop的时间复杂度都是O(1)***************************************************************
2014-03-12 10:55:24 718
原创 顺时针打印矩阵
/**************************************************************题目:输入一个矩阵,按照从外向内里以顺时针的顺序依次打印出每一个数字。**************************************************************/#includevoid printMatrixInCircle(
2014-03-12 10:10:53 710
原创 二叉树镜像
/******************************************************************题目:请完成一个函数,输入一个二叉树,该函数输出它的镜像。******************************************************************/#includestruct BinaryTreeNode{
2014-03-11 21:43:01 679
深入理解Nginx(Nginx模块开发与架构解析).pdf
2014-07-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人