
C++
Raven_csdn
分享,记录
展开
-
LeetCode:Largest Rectangle in Histogram(直方图中最大矩形面积)
84. Largest Rectangle in HistogramGiven n non-negative integers representing the histogram's bar height where the width of each bar is 1, find the area of largest rectangle in the histogram. Ab...原创 2018-12-01 22:43:19 · 856 阅读 · 0 评论 -
C++中的继承
继承方式的不同,成员变量在子类中的权限不同继承方式publicprotectedprivatepublicpublicprotectedprivateprotectedprotectedprotecedprivateprivateprivateprivateprivate1、子类拥有父类中所有成员变量和成员函数2、子类就是一种特殊的父类3、子类对象可以当做父类对象...原创 2019-03-19 19:18:54 · 618 阅读 · 0 评论 -
函数指针、函数指针做函数参数
数组类型如何定义typedef int(MyArray)[5];//这是我定义的数组类型,这个类型的名字是MyArray,它的本质是一个内存固定大小模板MyArray arr;//arr是一个数组(大小为5)类型的变量。可以这样访问arr[0] arr[1] arr[2]typedef int (*MyP)[5];//定义一个数组指针类型,这个指针指向大小为5的数组。MyP p;//...原创 2019-03-19 19:39:43 · 245 阅读 · 0 评论 -
C++面向对象,类的无参、带参构造函数、拷贝构造函数以及深拷贝和浅拷贝
构造函数为类对象分配内存空间。构造函数是C++中用于初始化对象状态的特殊函数构造函数在对象创建时自动被调用(默认调用),隐身调用构造函数和普通成员函数一样尊重重载规则拷贝构造函数是对象正确初始化的重要保证必要时,必须手工编写拷贝构造函数class Demo {public: Demo() { //无参数构造函数 a = 0; b = 0; p ...原创 2019-03-11 20:27:53 · 1961 阅读 · 0 评论 -
C++类析构函数
析构函数是C++释放类对象的函数,如果在类中不写析构函数,C++编译器会自动补上析构函数。如果人为定义了析构函数,那么会调用人为定义的。默认析构函数不会释放成员指针变量所指向的内存空间,如果要释放的话,还需要人为定义释放。析构函数在对象释放的时候自动调用,在delete 删除对象的时候,也会调用析构函数。class Demo {public: Demo() { //无参数构造...原创 2019-03-11 20:57:17 · 2189 阅读 · 0 评论 -
malloc和free、new和delete
1、new delete 操作符号 是c++关键字2、malloc free 函数 c语言3、new和malloc都是在堆上分配内存//分配基础类型int *p=(int *)malloc(sizeof(int));free(p);int *d=new int;//同上,从这里可以看出malloc需要计算出字节个数,而new不用计算。delete d;int * d2=new...原创 2019-03-11 21:12:44 · 294 阅读 · 0 评论 -
C++中static
class Demo{public: int getC() { return c; } static void get() {//静态成员函数,属于整个类,在静态数据成员函数中, //是不能调用具体的对象的变量的,不能调用普通的成员变量,以为它公共的,不知道调用的哪个对象的变量 //但是它可以访问静态成员变...原创 2019-03-11 21:25:17 · 158 阅读 · 0 评论 -
C++运算符重载+,前置++后置++,友员函数实现运算符重载的应用场景
为什么要有运算符重载?一些用于自定义类型,编译器不知道如何进行类型的运算。运算符重载的本质是函数。用两种方法实现运算符重载:1、重载为成员函数,解释为:ObjectL.operator op(ObjectR),左边操作数ObjectL通过this指针传递,右操作数由参数Object传递2、重载为友员函数,解释为:operator op(ObjectL,ObjectR),左右操作数都有参数...原创 2019-03-17 23:32:41 · 2346 阅读 · 1 评论 -
设计模式之单例模式
饿汉式//恶汉模式class Single {public: static Single* getInstance();private: Single(); Single(const Single &s); Single & operator=(const Single &s); static Single *instance;};Single::S...原创 2019-03-25 23:01:06 · 201 阅读 · 0 评论 -
Linux系统编程
一、进程的概念1、程序和进程 程序:二进制文件,占用磁盘空间 进程:启动程序 所有的数据都在内存中 需要占用更多的系统资源2、并发和并行 并发是在某个时间段内并发,比如在7点到8点回家、吃饭在这个时间段内,回家和吃饭并发 并行是某个时刻的并行,比如在7点10分,我吃饭的时候看着新闻,同时进行的二、进程控制fork函数,在进程执行到fork()函数的时候,会产...原创 2019-03-29 21:54:52 · 1566 阅读 · 0 评论 -
C/C++ string,char * p
#include<string>#include<cstdlib>#include<cstdio>#include<iostream>using namespace std;int main() { char * cstr = (char *)malloc(100); scanf("%s", cstr); //在...原创 2019-04-02 17:32:01 · 539 阅读 · 0 评论 -
C++基础bool、const、引用
C++中的布尔类型:C++在C语言的基础类型系统之上增加了boolC++中的bool可取的值只有false和true理论上bool只占用一个字节,如果多个bool变量定义在一起,可能只会各占一个bit,这取决于编译器的实现true代表真值,编译器内部用1表示false代表非真值,编译器内部用0表示bool类型只有true(非0)和false(0)两个值C++编译器会在赋...原创 2019-03-11 11:54:24 · 3150 阅读 · 0 评论 -
C++友元函数、友元类
class A {private : int a; int b;public: A() { a = 100; b = 200; } int geta() { return this->a; } friend void seta(A *p, int a);//声明一个友元函数,是这个类的好朋友,在类定义的地方,也就是类外可以访问类的私有变量};void s...原创 2019-03-19 18:35:08 · 194 阅读 · 0 评论 -
二叉树前序遍历非递归
二叉树的非递归前序遍历(根->左->右) void preorderTraversal(TreeNode* root) { if(root==NULL){ return ; } TreeNode * p=root; stack<TreeNode *> stas...原创 2018-12-27 17:12:37 · 379 阅读 · 1 评论 -
二叉树后续遍历非递归方法
二叉树的后续遍历(左->右->根)void postorderTraversal(TreeNode* root) { if(root==NULL){ return ; } stack<TreeNode *> sts; map<TreeNode *,bool&...原创 2018-12-27 17:17:57 · 1552 阅读 · 0 评论 -
LeetCode:Minimum Size Subarray Sum
Given an array of n positive integers and a positive integer s, find the minimal length of a contiguous subarray of which the sum ≥ s. If there isn't one, return 0 instead.Example: Input: s = 7, ...原创 2019-01-10 15:32:14 · 169 阅读 · 0 评论 -
LeetCode:Maximum Product Subarray(求最大子数组乘积)
Given an integer array nums, find the contiguous subarray within an array (containing at least one number) which has the largest product.Example 1:Input: [2,3,-2,4]Output:6Explanation: [2,3] ha...原创 2019-01-06 21:31:12 · 263 阅读 · 0 评论 -
C/C++中#include 有没有.h的区别
1、.h的是标准C的头文件,没有.h的是标准C++的头文件,两种都是头文件。造成这两种形式不同的原因,是C++的发展历史决定的,刚才正好有别的人也问这个问题,这里我再回答一下(注意vs2008和vs2005对标准C++的支持是一样的):以iostream和stdio.h为例,iostream是C++的库,stdio.h是标准C的库。2、新的C++标准摒弃了.h形式的头文件,所以在vs2005...转载 2019-02-22 10:06:19 · 1524 阅读 · 0 评论 -
C/C++数组首元素的地址和数组地址的区别
1、首先数组首元素的地址和数组地址的值是相等的。2、数组首元素的地址和数组地址是两个不同的概念。3、举例如下:#include<stdio.h>void main() { int a[10] = {}; printf("%d\n", a); printf("%d\n", a+1); //与前面一个相差4 printf("%d\n", &a); ...原创 2019-02-22 11:19:57 · 13461 阅读 · 2 评论 -
二叉树非递归遍历
//前序遍历void preOrderN(TreeNode * root) { stack<TreeNode * > st; //st.push(root); TreeNode * p = root; while (!st.empty() || p != NULL) { while (p) { printf("%d\n", p->val); st.pu...原创 2019-02-27 15:18:29 · 151 阅读 · 0 评论 -
typedef和#define的用法与区别
typedef和#define的用法与区别一、typedef的用法在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像:typedef int INT;typedef int ARRAY[10];typedef (int*) pINT;typedef可以增强程...转载 2019-02-26 16:19:08 · 177 阅读 · 0 评论 -
C++ 虚函数、多态
所谓多态就是相同的调用,得到不同的结果。一种调用多种状态。实现多态必须满足三个条件:1、有子类继承 2、有虚函数重写 3、要有父类指针(父类引用)指向子类对象class Parent {public: Parent(int a = 0) { this->a = a; } //第一个动手脚的地方,编译器应该对这个虚函数,特殊处理 virtual void print()...原创 2019-03-19 17:24:21 · 175 阅读 · 0 评论 -
C++重写、重载、重定义、名称覆盖
代码如下:parent: --------------------------------------------------child:void print()--------------------------------------------void print() //重定义void print(int i,int j) //和父类中的print()重...原创 2019-03-19 18:24:34 · 233 阅读 · 0 评论