C++
文章平均质量分 67
yqtaowhu
硕士研究生,关注方向:C++,Linux,数据挖掘,机器学习,计算机视觉
Github:https://github.com/yqtaowhu
展开
-
C++面试题--string类的实现
c++的一个常见的面试题即写一个简单的string类,这个类中应该有着必要的构造函数、复制构造函数、赋值操作符、析构函数等功能,需要很好的处理内存的问题。赋值操作符的多种写法:1.一般的经典写法为(没有考虑异常处理): 这里还要注意的是:令赋值操作符返回一个reference to *this:详细见《effective c++》String& String::operator=(const St原创 2016-11-06 16:37:26 · 3488 阅读 · 3 评论 -
深入理解C++构造、析构、赋值操作
C++默默编写的函数编写一个空类Emptyclass Empty {};当经过C++处理过后,相当于你写了:class Empty { Empty(); //默认构造函数 Empty(const Empty& rhs); //复制构造函数 Empty& operator=(const Empty& rhs); //复制赋值操作 ~Empty(); //析原创 2017-02-24 14:09:46 · 645 阅读 · 0 评论 -
Linux多线程编程入门
线程基本知识\quad进程是资源管理的基本单元,而线程是系统调度的基本单元,线程是操作系统能够进行调度运算的最小单位,它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。一个进程在某一个时刻只能做一件事情,有了多个控制线程以后,在程序的设计成在某一个时刻能够做不止一件事,每个线程处理独自的任务。需要注意的是:即原创 2017-02-21 17:43:48 · 10584 阅读 · 2 评论 -
C/C++基础知识总结<一>
1. 分配内存的方法\quad面试中比较见问的一个问题。 \quad注意: \qquad1. 只有calloc函数会将分配内存初始化为0 \qquad2. new是C++独有的,其是运算符,而不是函数。下面对其分别进行介绍:1) malloc 函数:void *malloc(unsigned int size)\quad 在内存的动态分配区域中分配一个长度为size的连续空间,如果分配成功,原创 2017-02-24 18:27:39 · 9281 阅读 · 0 评论 -
GDB简明教程
声明:本博客内容是由本人经过实验楼教程整理得来。GDB的相关概念GDB, 是 The GNU Project Debugger 的缩写, 是 Linux 下功能全面的调试工具。GDB 支持断点、单步执行、打印变量、观察变量、查看寄存器、查看堆栈等调试手段。在 Linux 环境软件开发中,GDB 是主要的调试工具,用来调试 C 和 C++ 程序。GDB的相关操作下面给出一个具有buging.c的程序:原创 2016-11-28 21:21:55 · 6275 阅读 · 1 评论 -
C++11语言可用性的强化
声明:内容来自实验楼《C++ 11/14 高速上手教程》,由本人整理、实验得来。一、nullptrnullptr 出现的目的是为了替代 NULL。在某种意义上来说,传统 C++ 会把 NULL、0 视为同一种东西,这取决于编译器如何定义 NULL,有些编译器会将 NULL 定义为 ((void*)0),有些则会直接将其定义为 0。 因此应该用nullptr来代替NULL。二、类型推导C++11 引原创 2016-11-16 15:59:16 · 553 阅读 · 0 评论 -
c++11新特性--Lambda表达式
在刷题的过程中有时会用到lambda表达式,因此在查阅了相关资料后,写出自己对于lambda表达式的理解,如果有问题,欢迎指出。lambda的优点是:可以编写内嵌的匿名函数,而不必编写独立函数或函数对象,使得代码更加的容易理解和精简。Lambda的形式 [capture] (param) opt->ret{body;}; [] 为捕获对象,可以是外部变量,指针,引用等 () 为参数列原创 2016-09-14 20:34:30 · 3896 阅读 · 2 评论 -
C++智能指针的理解与实现
一、什么是智能指针 由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete,流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 delete 的情况并不罕见。用智能指针便可以有效缓解这类问题引用《more effective c++》中的话: 所谓的智能指针,是看起来,用起来感觉都像是内建的指针,但提原创 2016-10-26 21:41:40 · 3422 阅读 · 0 评论 -
位运算的技巧题
位运算非常的巧妙,有时会让题目的解法非常简单,但是其技巧性很强,因此这里自己将一些关于位运算的题目进行了总结。Q1: 不用任何比较运算比较两个数的较大的数此题的范围为int32内。因为不能用比较运算,自然的想到位运算,如下的一种常规的解法。 1. 计算c=a-b判断c的正负 2. (n>>31)&1 =1 则说明n为负数,否则为正数int flip(int n) { retur原创 2016-10-23 20:27:28 · 501 阅读 · 0 评论 -
实现自己的C++ STL--vector容器
实现c++标准模板库STL(implement the c++ STL)Author : yqtaohttps://github.com/yqtaowhu学c++同学必会的一项技能必须懂得STL,STL真的非常的强大,因此自己想实现一个自己的STL库,因此在读了《STL源码剖析》之后,开始了编写自己的库道路,如果你有兴趣,欢迎和我一起研究,完整的代码和测试案例在我的Github:https://gi原创 2016-07-24 16:54:40 · 5136 阅读 · 0 评论 -
STL之pair类型详细分析
转载于http://blog.csdn.net/u014492609/article/details/39804269pair定义于头文件utility中,主要的作用是将两个数据组合成一个数据,两个数据可以是同一类型或者不同类型。pair类型提供的操作:[cpp] view plain copypair<T1,T2> p1; pair<T1,T2> p1(v1,v2); make_pai转载 2016-06-10 21:51:24 · 747 阅读 · 0 评论 -
《Effective c++》学习笔记--Accustoming Yourself to C++
Item 01 : View C++ as a federation of languagesC++语言联盟分成4部分 :CObject-Oriented C++封装,继承,多态,虚函数。。。Template C++ 这是C++泛型编程的部分STL C++标准模板库什么时候使用传值: 对于内置类型(C-like)来说,传值比传引用高效,但是对于用户自定义的类型来说,传引用往往原创 2016-10-09 10:24:03 · 530 阅读 · 0 评论 -
Morris Traversal方法遍历二叉树(非递归,不用栈,O(1)空间)
转载:http://www.cnblogs.com/AnnieKim/archive/2013/06/15/MorrisTraversal.html本来自己也只是会递归和迭代+栈的方法,今天在刷题是看到要求用O(1)的空间去求解,因此学习了如何用O(1)的空间去解。本文主要解决一个问题,如何实现二叉树的前中后序遍历,有两个要求:O(1)空间复杂度,即只能使用常数空间;二叉树的形状不能被破坏(中间转载 2016-07-27 15:01:35 · 586 阅读 · 0 评论 -
磁盘排序
转自大神 博客:http://blog.csdn.net/v_JULY_v/article/details/6451990作者:July,yansha,5,编程艺术室。出处:http://blog.csdn.net/v_JULY_v 。前奏 经过几天的痛苦沉思,最终决定,把原程序员面试题狂想曲系列正式更名为程序员编程艺术系列,同时,狂想曲创作组更名为编程艺术室。之所以要改名,我们考虑到三转载 2016-06-05 14:27:24 · 2358 阅读 · 0 评论 -
随机数的产生
#include "stdafx.h"#include <iostream> #include <time.h> #include <assert.h> using namespace std;int main(){ const int size = 10000000; int n; int* num = new int[10000000]; //i原创 2016-06-05 14:23:25 · 364 阅读 · 0 评论 -
自制编译器---c++实现词法分析器
词法单元词法解析器在编译器中的作用,是将输入流解析为一种能够被语法解析器使用和管理的格式。他将输入文本分割,打标签,也就是用一些数值来指代一系列相应的字符串。 例如:int a,b,c;a=34;b=56;int c=a*b;经过词法单元会生成如下的形式 首先定义一组词法单元#include <iostream>#include <string>using namespace std;原创 2016-06-25 21:45:07 · 10380 阅读 · 6 评论