自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 string类、string类模拟实现、深浅拷贝、写实拷贝

1. 为什么学习string类?C语言中,字符串是以'\0'结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数与字符串是分离开的,不太符合OOP的思想,而且底层空间需要用户自己管理,稍不留神可能还会越界访问。 2. 标准库中的string类2.1 string类1. string是表示字符串的字符串类 2. 该类的接口与常规容器的接口基本...

2019-08-07 14:52:40 206

原创 stl

目录1. 什么是STL2.STL的六大组件STL六大组件3.STL的缺陷1. 什么是STLSTL(standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。2.STL的六大组件STL六大组件容器(Container)算法(Algorithm)迭代...

2019-08-07 14:14:47 387

原创 c++模板入门,泛型编程、函数模板、类模板

目录1. 泛型编程2. 函数模板2.1 函数模板概念2.2函数模板格式2.3 函数模板的原理2.4 函数模板的实例化2.5 模板参数的匹配原则3. 类模板3.1 类模板的定义格式3.2 类模板的实例化1. 泛型编程如何实现一个通用的交换函数?使用函数重载虽然可以实现,但是有一下几个不好的地方: 1. 重载的函数仅仅只是类型不同,代码的复...

2019-08-07 13:56:54 221

原创 C/C++内存管理

目录1. C/C++内存分布2. C语言中动态内存管理方式3. C++内存管理方式4. operator new与operator delete函数5. new和delete的实现原理6. 定位new表达式(placement-new)7. 常见面试题1. C/C++内存分布【说明】 1. 栈又叫堆栈,非静态局部变量/函数参数/返回值等等...

2019-08-07 13:38:17 414

原创 类与对象:类的6个默认成员函数: 构造函数、析构函数、拷贝构造函数、赋值操作符重载、默认拷贝构造与赋值运算符重载的问题、const成员函数、 取地址及const取地址操作符重载

1.类的6个默认成员函数如果一个类中什么成员都没有,简称为空类。任何一个类在我们不写的情况下,都会自动生成下面6个默认成员函数。构造函数 析构函数 拷贝构造函数 赋值操作符重载 const成员函数 取地址及const取地址操作符重载2. 构造函数2.1 概念构造函数是一个特殊的成员函数,名字与类名相同,创建类类型对象时由编译器自动调用,保证每个数据成员都有 一个合...

2019-08-07 11:17:22 929

原创 类与对象、this指针、类的对象大小的计算、类的作用域、类的实例化

目录1.类与对象的初步认知2.类的引入3.类的定义4.类的访问限定符及封装5.类的作用域6.类的实例化7.类对象模型8.this指针1.类与对象的初步认知C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。 C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。2.类的引入...

2019-08-07 10:16:07 145

原创 c++入门、关键字、命名空间、出入输出、缺省参数、函数重载、引用、内联函数、auto、范围for循环、指针空值null

目录1.什么是C++c++关键字:(c++98)2. 命名空间3. C++输入&输出4. 缺省参数5. 函数重载6. 引用7. 内联函数宏:定义常量、定义宏函数。(缺陷很大)#define8. auto关键字(C++11)9. 基于范围的for循环(C++11)1.什么是C++ C语言是结构化和模块...

2019-08-07 09:35:40 313

原创 leetcode155:最小栈

设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。//使用两个栈class MinStack {public: stack<int> q; stack<int> min; /** initialize your data structure here. */ MinStack() { ...

2019-08-06 21:46:51 112

原创 leetcode225:用队列实现栈

使用队列实现栈的下列操作: push(x) -- 元素 x 入栈 pop() -- 移除栈顶元素 top() -- 获取栈顶元素 empty() -- 返回栈是否为空注意: 你只能使用队列的基本操作-- 也就是 push to back, peek/pop from front, size, 和 is empty 这些操作是合法的。 你...

2019-08-06 21:46:32 163

原创 leetcode232:用栈实现队列

使用栈实现队列的下列操作: push(x) -- 将一个元素放入队列的尾部。 pop() -- 从队列首部移除元素。 peek() -- 返回队列首部的元素。 empty() -- 返回队列是否为空。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/implement-queue-using-stacks...

2019-08-06 21:46:14 186

原创 leetcode20:有效的括号(c语言和c++两种解法)

方法一:C语言bool isValid(char* s) { char a[100000] = { 0 }; int count = 0; while(*s) { switch(*s) { case '{': case '[': case '(':...

2019-08-06 21:46:02 379

原创 栈、队列

栈: 先进后出#include<stdio.h>typedef struct Stack { int array[100]; int size;} Stack;//初始化void StackInit(Stack* s){ s->size = 0;}//销毁void StackDestroy(Stack* s){ s-&...

2019-08-05 15:18:04 109

原创 leetcode141环形链表

给定一个链表,判断链表中是否有环。/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; *///快慢指针bool hasCycle(struct ListNode *head) { struct Lis...

2019-08-05 14:08:28 121

原创 leetcode160相交链表

编写一个程序,找到两个单链表相交的起始节点。/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */int getlen(struct ListNode *head){ int l = 0; ...

2019-08-05 13:57:36 100

原创 牛客网:删除链表中重复节点

题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5class Solution {public: ListNode* deleteDuplication(ListNode* pHead) { ...

2019-08-05 12:43:50 174

原创 leetcode21. 合并两个有序链表

将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/merge-two-sorted-lists...

2019-08-05 12:16:06 106

原创 牛客网 输入一个链表,输出倒数第k个节点

/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) { ...

2019-08-05 11:45:25 160

原创 leetcode第203题用C语言移除链表元素

删除链表中等于给定值val的所有节点。方法一: 递归法/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode* removeElements(struct ListN...

2019-08-05 11:26:37 229

原创 leetcode第206题,C语言反转单链表题

方法一:三指针反转法/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode* reverseList(struct ListNode* head) { struct Li...

2019-08-05 10:44:23 205

原创 链表

链表的概念: 链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针连接次序实现的。#include<stdio.h>#include<malloc.h>#include<assert.h>typedef int SlistDataType ;//定义链表中的节点的结构体typedef s...

2019-08-05 10:06:50 112

原创 顺序表的创建、增、删、查、改、打印、销毁

#include<stdio.h>#include<assert.h>#include<malloc.h>#include<stdlib.h>typedef int SLDataType;//可更改方便数据类型的动态数据表//静态顺序表typedef struct SeqList1 { int array[100]; //容量...

2019-08-05 09:14:34 140

空空如也

空空如也

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

TA关注的人

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