自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (1)
  • 收藏
  • 关注

原创 滴滴笔试题 N的阶乘从最低位开始有多少个连续的0

1>问题描述   用普通方法:先求n的阶乘,然后判断低位有多少个连续的0。肯定会超时的最简单的思路就是把所有的数字进行分解质因数,例如:6 = 2*315 = 3*564 = 2*2*2*2*2*2 = 2^6100 = 2^2 * 5^2576

2017-08-24 19:24:04 580

原创 滴滴校招 餐馆最大收益问题

1>问题描述2>自己最初的代码#include#include#includeusing namespace std;/* *想到用动态规划 *dp[i][j]表示只有前i张桌子,并且只有前j批游客的情况下。 *餐馆能获得的最大收益 *但是,思路有问题。状态方程有问题 */int main(){ int tableLen=0,c

2017-08-24 11:38:40 415

原创 滴滴笔试-青蛙走地下迷宫问题

1>问题描述2>自己最初的版本(读者可跳过)/* * 这种要便利每种结果(具体路径)的一般用dfs;如果只求最大/最小结果的种类数,优先考虑动态规划 * 自己写的最初版本存在两个主要问题: * 1.最关键的问题,已经走过的位置没有进行标记,导致可能重复走,所以超时了 * 2.要求输出有效路径中消费能量最少的路径,没有效路径时打印错误消息 * 应该有

2017-08-24 09:26:12 482

原创 STL顺序容器vector与list

1 vectorvector与array的区别在于,空间运用的灵活性不同。array是静态空间,大小不能动态改变。vectro则不同,vector随着元素的增加,空间也会不断增加,用户不需要空间怎么增加。vector的关键在于:对大小的控制以及重新配置内存时,数据移动的效率问题。vector迭代器用的是Random Access Iterators。vector的迭代器就是普通

2017-06-19 11:57:18 315

原创 迭代器(iterators)与traits编程技巧

1 迭代器基础迭代器(iterator):在不暴露容器内部的前提下,能依序访问容器的每个元素。迭代器是STL的关键,STL的中心思想是:将容器与算法分开,彼此独立,然后用粘合剂进行关联,迭代器就是这个粘合剂。同过平时对STL的应用可以发现,每个容器都有自己的迭代器,例如:vector::iterator ;list::iterator等,迭代器总是依附于容器的。为了将实现细节封

2017-06-17 17:28:06 516

原创 SGI特殊空间配置器std::alloc

alloc不接受任何template类型参数,它只是一个别名。另外,new对象操作实际执行两个过程:1>调用::operator new 配置内存。2>调用相应的构造函数,构造对象。delete对象也执行两个过程:1> 调用响应的析构函数,析构对象。2> 调用::operator delete 释放内存。为了精密分工,STL allocator将 两个过程分开处理,配置

2017-06-16 17:28:15 320

原创 STL控件配置器allocator

1.自定义控件配置器#ifndef _JJALLOC_#define _JJALLOC_#include //for placement new (定位new)#include //for ptrdif_t,size_t#include //for exit()#include // for UNIT_MAX#include

2017-06-15 17:33:14 248

原创 剖析C/C++二维数组与指针的关系

例子:1> 该二维数组在内存中的存储结构     想象中的结构是表格类型的:          实际内存中的存储结构是连续的两个长度为3的一维数组:           2> 数组名arr与arr[0]、arr[1]表示什么?首先,arr[0]与arr[1]都是指针,分别指向第一个和第二个一维数组的首元素地址,示意图如下:

2017-05-09 10:23:47 595

原创 C++ 类的静态成员

1. 为什么要有静态成员当某个成员需要属于类本身,而不输入某个特定对象时,这样的成员需要定义为静态(static)类型。例如:银行账户类有一个表示基准利率的成员。该成员不随对象的不同而改变。另外,如果该利率成员的值改变,所有的对象应该都能使用该新值。它属于该类本身的成员,因此需要定义为static类型。2.静态成员的性质静态成员不与任何对象绑定在一起。不能通过this指

2017-02-15 17:03:54 223

原创 关于C++ 从命令行输入数据 常用输方法cin的一些理解总结

一 背景:实现从命令行输入 不定长度的数字,求和的简单功能; 方法1:这是最简单的方法,但是缺点在于:如注释所示,在Windows系统下只能以Ctrl+Z或其他非data的类型的输入作为输入结束符,常用的Enter键不能作为结束符。疑问:会不会是因为输入数据data类型是int类型引起的呢?测试1:预期结果:当输入Enter键后,会跳出while循环。但是结

2016-12-02 11:21:11 11863 1

原创 C语言 子函数返回一个局部指针变量的疑惑

输出结果如下图:我的分析:内存分布图如下图:当子函数返回后,局部变量已经超出了作用域啊,为什么在main()函数中还能通过指针rp间接访问变量x呢??为什么第一次访问可以输出12,第二次访问就内存释放了呢,输出一个随机数????

2016-11-28 14:19:04 1997 2

原创 用C语言实现二叉树的结构和常用操作

#include#include typedef float ElemType;typedef struct S_BiTNode//定义结点类型结构体{ElemType data;//数据域struct S_BiTNode * lchild;//左子树struct S_BiTNode * rchild;//右子树struct S_BiTNode * parent;//父结点}BiTNode;/**

2016-11-27 20:50:57 7639

原创 C/C++ 子函数返回局部变量、指针 和改变指针指向

1>子函数返回局部变量例子1:上面的简单程序,大家应该都知道应该会输出什么。是的,输出如下图:引出的思考:子函数doubletimes()中的返回变量k是局部变量,返回到主函数后该变量超出了作用域,已经被销毁了,为什么主函数中的变量m还会等于20呢?引出的结论:C语言中参数的传递(包括输入参数和返回参数)实质上都是传递的参数的拷贝。在上面例子中,子函数返回值k=

2016-11-24 21:24:59 4630

原创 C++ static对象 和析构函数的关系

背景:用C++实现一个矩阵类:类的定义如下图1>子函数返回static变量例如:重载+运算符时,想要实现矩阵类对象相加,形如M3=M2+M1的功能。加法的操作数有两个M2、M1,其中M2是this指针指向的对象,M1为传进的对象参数。如下图所示,加法运算符返回一个对象。该对象是局部变量,如果定义为普通的变量,那么return后立刻调用析构函数释放该对象的内存,释放后该变量的

2016-11-24 09:12:15 5291 1

转载 C/C++中const修饰符的用法总结

在这篇文章中,我总结了一些C/C++语言中的 const 修饰符的常见用法,供大家参考。 const 的用法,也是技术性面试中常见的基础问题,希望能够帮大家梳理一下知识,给大家一点点帮助。作者是菜鸟一枚,难免出错,还望各位大牛不吝赐教。  首先,来看看const的基本含义。在 C/C++ 语言中,const关键字是一种修饰符。所谓“修饰符”,就是在编译器进行编译的过程中,给编译器一些“要求

2016-11-22 20:36:33 1528

原创 分别用C和C++实现了链表结构

C实现:这里写代码片LINKED_LIST.htypedef struct S_NODE { float data; struct S_NODE *link;}Node;//创建链表 Node* Create() { Node *root,*tail,*pnew; float data; int i; root=(Node*)mall

2016-11-22 17:51:31 400

原创 对C语言 指针和二级指针的理解

1.变量的值存在计算机内存中,每个内存地址都由位置唯一确定;指针相当于这个位置的别名。实质:指针即是地址。2.一个变量的值是:分配给该变量内存中所存储的数据。3.指针也是变量,叫做指针变量。举个例子:int a=12; int *b=&a;int **c=&b;那么内存结构如下图所示:验证输出结果:

2016-11-21 11:24:33 395

原创 C 语言执行free()释放内存时 报错

今天遇到了一个问题。先用malloc()分配一定大小的内存,然后在主函数最后要对这些内存进行释放。调用free函数,执行报错。单步调试 执行free()后的报错如图 1所示。最终发现我是这样做的:例如 分配10个元素内存,我对这10个元素进行了赋值,最后是调用了free()函数,报错!!!如果我分配10个元素的内存,只对9个(只要小于10就行)元素进行赋值,再调用free()函数,就不会报

2016-11-20 21:43:17 2241 1

转载 转载的关于C++如何提高效率的方法

对于每一个程序员来说,程序的运行效率都是一个值得重视,并为之付出努力的问题。但是程序性能的优化也是一门复杂的学问,需要很多的知识,然而并不是每个程序员都具备这样的知识,而且论述如何优化程序提高程序运行效率的书籍也很少。但是这并不等于我们可以忽略程序的运行效率,下面就介绍一下本人积累的一些简单实用的提高程序运行效率的方法,希望对大家有所帮助。注:以C/C++程序为例一、尽量减

2016-11-13 17:55:39 228

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除