自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Kang_TJU的博客

潮平两岸阔,风正一帆悬

  • 博客(13)
  • 收藏
  • 关注

原创 leveldb-c++版本安装

主要是参照了这个链接[在Linux下编译Google leveldb数据库及在C++中操作示例]安装leveldbgit clone https://github.com/google/leveldb.git 下载leveldb,下载完成之后会生成levedb的文件夹。cd leveldb // 进入leveldb有如下的文件:2.make编译 编译之后结果: 其中,out-shared存

2017-06-30 14:30:11 1732

原创 经典造轮子-String类的实现

一个简单的版本#include <iostream>#include <cstring>class MyString{public: typedef size_t size_type;public: MyString(){} explicit MyString( int n, char ch = 0 ) : n_(n) { ptr_ = new char[n

2017-06-28 11:32:00 360

原创 c++函数explicit修饰符

本文参考了以下两篇博客:[C++笔记(1)explicit构造函数], [explicit在构造函数的使用 及 详解],只是对自己的学习做一个简要的记录。问题引入 explicit修饰符的作用是什么,什么时候用?explicit的主要用法就是放在单参数的构造函数中,防止隐式转换,出现歧义.因为,只有一个参数的构造函数也定义了一个隐式转换,将该构造函数对应参数的数据类型的数据转换为该类对象。如下

2017-06-27 17:37:22 1109

原创 c++函数返回引用的问题

这两天写Vec时遇见返回引用的问题,觉得之前对这个问题的理解不够深入。所以,本文进一步讨论下我对这个问题的理解。 本文参考了[c++函数返回引用]一文,此文写的较为清楚,大家可以直接参看此文。问题引入重载Vec的[]运算符时的接口如下:T& operator[]( size_type i ) { return data[i]; }const T& operator[]( size_type i

2017-06-27 15:15:11 1065

原创 c++返回值优化的问题

本文总结以下我对返回值优化的学习,主要参考了下面这个链接的学习内容。 [C++中的返回值优化(RVO)]命名返回值优化(NRVO)二话不说,先上代码:#include <iostream>class A{public: A(){ std::cout << "Default constructor is called." << std::endl; } A( const A& rh

2017-06-16 14:34:24 599 1

原创 c/c++函数参数的入栈顺序和计算顺序

先给出本文参考的链接: [C/C++函数参数读取顺序 ] [关于c语言和c++中的函数参数的执行顺序的问题],裘宗燕老师的讲解非常准确。尤其是对于表达式计算,表达式的副作用,都有启发性的讲解。 [C++函数参数的入栈顺序]问题其实今天的学习始于这样一段代码的结果:#include <stdio.h>void foo( int x, int y, int z ){ printf( "%d

2017-06-15 11:06:27 1338

原创 linux相关-ubuntu使用ssh public key登陆

目前面临的情况时: 1.给了aliyun主机的 username@ip,但是没有密码。 2.给了public key所以,需要搞定ubuntu下ssh使用public登陆。网上的教程多半是在客户端和服务端都有的情况下进行。比较全的可以参看下面这两个: [Ubuntu使用ssh公钥实现免密码登录],[ubuntu系统使用SSH免密码登陆].。如果是我这种情形,那么证明服务端的public key

2017-06-14 13:15:27 4397

原创 剑指offer-二叉搜索树的后续遍历序列

问题题目:[二叉搜索树的后续遍历序列]思路这个题目我觉得还是不错的,自己期初没有想出来。 其实主要是要结合后续遍历的思路,序列中最后一个节点一定是根。然后此时,考虑BST的性质,左子树比根小,右子树比根大。所以前面的序列也是一部分比根小,一部分比根大。并且这两个序列都是完全连续的。这题另外一个总要思路就是对于树这种递归结构,最常见的解决办法是地柜的方法。代码class Solution {pub

2017-06-13 17:43:36 388

原创 并查集学习并实现

本文主要给出对于并查集基本概念的学习以及主要操作实现。基础理论 1.并查集定义 并查集,前提肯定是一个集合。代码实现

2017-06-09 10:09:52 371

原创 剑指offer-从上往下打印二叉树

问题题目:[从上往下打印二叉树]思路二叉树的层次遍历,没什么好说的。代码/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};

2017-06-07 22:57:03 255

原创 定义一个只能在堆上(栈上)生成对象的类

#include &lt;iostream&gt;class A{public: A(){} void print(){ std::cout &lt;&lt; &quot;Hello, world!&quot; &lt;&lt; std::endl; } void destroy(){ delete this; }protected: virtual ~A(){ std::cout &lt;&

2017-06-04 23:24:00 565

原创 剑指offer-合法的出栈序列

问题题目:[合法的出栈序列]思路这个题我模拟了,写的有点麻烦。 基本思路是考虑出栈序列,对于每一个出栈元素,进行模拟,因为如果当前元素要出栈,那么证明他以及他之前的元素都在栈内。所以,将之前的元素入栈即可。 可以写如下判断逻辑: 1.如果当前出栈元素在栈里面(其实用集合判断),只需判断栈顶和当前出栈元素是否一样。如果不一样,返回false. 2.如果当前出栈元素不在栈里面,只能是从入栈的序列

2017-06-01 21:13:07 327

原创 剑指offer-包含Min函数的栈

问题题目:[包含Min函数的栈]思路增加一个辅助栈,保存曾经的最小元素。 但是有一种情况要考虑,就是考虑这样的一个序列:[1,1,1,1,1] 全部都是最小值,如果每次判断只有小于的才入栈,那么会导致一个问题就是。如果出栈判断当前元素和辅助栈top一样就出栈,这样会导致最小元素都没了。所以,入栈的条件需要修改下。代码class Solution {public: void push(i

2017-06-01 20:05:44 240

空空如也

空空如也

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

TA关注的人

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