c++
文章平均质量分 78
LeetCode8023
这个作者很懒,什么都没留下…
展开
-
c++中string类的基本功能的实现(1)
1、传统的实现string类的方法优点:程序简单易懂缺点:1)在实现其拷贝构造和赋值的操作时多次的调用new动态的开辟空间,因此也需要多次的通过delete来释放空间。如果处理不当还容易造成内存泄漏。2)程序的一致性比较差#include #include using namespace std; class String { public: // 构造函数 String(char *原创 2016-05-29 17:22:26 · 465 阅读 · 0 评论 -
函数模板在c++动态顺序表中的大作用
函数模板提供了一种机制通过它我们可以保留函数定义和函数调用的语义在一个程序位置上封装了一段代码确保在函数调用之前实参只被计算一次.函数模板提供一个种用来自动生成各种类型函数实例的算法程序员对于函数接口参数和返回类型中的全部或者部分类型进行参数化(parameterize)而函数体保持不变.函数模板使用注意事项:1、每个函数模板前边都需要添加模板声明例如:template2、在模板类的使用时,注意其原创 2016-05-29 17:22:37 · 463 阅读 · 0 评论 -
面试题的那些事(1)
1、春节期间小明使用微信收到很多个红包,非常开心。在查看领取红包记录时发现,某个红包金额出现的次数超过了红包总数的一半。请帮小明找到该红包金额。写出具体算法思路和代码实现,要求算法尽可能高效。给定一个红包的金额数组gifts及它的大小n,请返回所求红包的金额。测试样例:[1,2,3,2,2] 5返回:2解题思路:采用阵地攻守的思想: 第一个数字作为第一个士兵,守阵地;count = 1; 遇到相原创 2016-05-29 17:22:40 · 503 阅读 · 0 评论 -
面试题的那些事(2)—斐波那契数列
斐波那契数列1、写一个函数,输入n,求斐波那契数列的第n项。斐波纳挈数列的定义如下:650) this.width=650;" src="http://s5.51cto.com/wyfs02/M01/7E/81/wKiom1cCeQLD_FETAAAkmMx1hAg133.png" title="QQ截图20160329153517.png" alt="wKiom1cCeQLD_FETAAAkmM原创 2016-05-29 17:22:43 · 410 阅读 · 0 评论 -
c++智能指针的不断演化
RAII资源分配即初始化,定义一个类来封装资源的分配和释放,在构造 函数完成资源的分配和初始化,在析构函数完成资源的清理,可以保证资源的正确初始化和释放。 智能指针的引入:由于return ,throw等关键字的存在,导致顺序执行流的错乱,不断的进行跳转,使开辟的空间看似被释放,而实际上导致内存的泄露。例如以下两个例子:void Test1() { int *p1 = new int(1);原创 2016-05-29 17:22:46 · 364 阅读 · 0 评论 -
如何定义一个只能在堆上(栈上)生成对象的类?
类的对象的生成 在C++中,类的对象建立分为两种,一种是静态建立,如A a;另一种是动态建立,如A* ptr=new A;这两种方式是有区别的。 静态建立一个类对象,是由编译器为对象在栈空间中分配内存,是通过直接移动栈顶指针,挪出适当的空间,然后在这片内存空间上调用构造函数形成一个栈对象。使用这种方法,直接调用类的构造函数。 动态建立类对象,是使用new运算符将对象建立在堆空原创 2016-07-09 13:03:08 · 927 阅读 · 0 评论