自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (1)
  • 收藏
  • 关注

原创 Leetcode:两两交换链表中的节点(#24)

题目描述:解法:1.迭代   思路:将两个节点操作看为一步,让前驱节点指向后驱节点的下一节点,后驱节点指向前驱节点,以及前驱结点的前一节点指向后驱节点,达到交换节点的目的。条件是前驱结点和后驱节点都不为空。   代码:class Solution {public: ListNode* swapPairs(ListNode* head) { ListNode* dump = new ListNode(-1); //哑节点指向该链表 dump-&

2020-08-05 11:59:39 136

原创 Leetcode:删除链表的倒数第N个节点(#19)

题目描述:解法:1.两次遍历算法   思路:第一次遍历链表得到链表的长度,第二次到对应位置便执行删除结点操作。   代码:class Solution {public: ListNode* removeNthFromEnd(ListNode* head, int n) { ListNode* pre = new ListNode(-1); //添加一个哑结点 pre->next = head; //让哑结点指向链表的头结点

2020-08-03 13:10:37 116

原创 Leetcode:反转链表(#206)

题目描述:解法:1.迭代(头插法):class Solution {public: ListNode* reverseList(ListNode* head) { ListNode* newHead = nullptr; //新链表的头节点 ListNode* next = nullptr; //保存头节点的下一个节点地址 while(head != nullptr) { //迭代头插入新链表 next = head->

2020-08-02 23:24:26 127

原创 范围 for 语句

   C++11 新标准引入了范围for语句,用来方便地遍历一个容器或其他序列。其语法形式是: for(declaration : expression) statement   expression表示必须是一个序列,比如用花括号括起来的初始值列表、数组、或者 vector 或 string 等类型的对象。这些类型的共同特点是拥有能够返回迭代器的 begin 和 end 成员。   declaration定义一个变量,auto 确保类型相容,让编译器帮我们找到合适的类

2020-06-13 14:57:47 359

原创 强制类型转换

文章目录一、C++ 强制类型转换1. static_cast2. const_cast3. reinterpret_cast4. dynamic_cast二、旧式的强制类型转换一、C++ 强制类型转换   命名的强制类型转换具有如下形式: cast-name<type>(expression);   type 是转换的目标类型,expression 是需要转换的值。cast-name 是 static_cast 、 dynamic_cast 、 const_cast

2020-06-13 14:23:36 805

原创 处理类型

文章目录一、类型别名二、 auto 类型说明符三、 decltype类型指示符一、类型别名   类型别名是一个名字,它是某种类型的同义词。它能让复杂的类型名字变得简单明了、易于理解和使用,还有助于程序员清楚的知道使用该类型的真实目的。   有两种方法定义类型别名:   1.使用关键字 typedef (传统方法)   2.使用别名生命 using (C++11 新标准规定) typedef double wages, *p; // wages 是 double 的同义词,p 是 do

2020-06-13 12:46:19 381

原创 const 限定符

文章目录一、const 的初始化二、const 的引用三、const的指针四、顶层 const五、constexpr和常量表达式一、const 的初始化   const 可以限定变量的类型,创建一种类型的常量,创建后便不能够被改变。   因为 const 对象创建后不能够改变其值,因此 const 对象在创建时必须初始化: const int i = 42; //正确,编译时初始化 const int k; //错误,未初始化常量 const int ci = i; //正确,

2020-06-12 21:14:15 123

原创 条款 09:绝不在构造和析构过程中调用virtual函数

   这次从一个例子开始理解吧。//people.hclass People{public: People(const std::string& name):theName(name) { print(); } //People构造函数 virtual void print() //vitrual函数打印名称 { std::cout << theName; } ~People(); //People

2020-06-07 15:39:59 143

原创 条款 07:为多态基类声明 virtual 析构函数

的撒

2020-06-07 14:52:19 84

原创 条款 06:若不想使用编译器自动生成的函数,就该明确拒绝

   在条款5中已经提到,编译器会默默的给你生成复制构造函数和赋值运算符函数。   但如果我们希望每一个对象都是独一无二的,不希望看到拷贝动作的出现。又该怎么做呢?   解决的关键在编译器生成的函数都是public,而只要我们将这两个拷贝函数声明为private,但却不去定义它们,就可以避免编译器为我们自动生成,用户也无法拷贝。   所以即使其他成员函数和友元函数还是可以调用类的private函数,会出现连接错误,在C++中的iostream库中,就是这样处理的。   而有一种做法则可以将

2020-06-07 13:48:47 89

原创 条款 05:了解C++默默编写并调用哪些函数

   编译器在合法的情况下会为类编写这些函数:默认构造函数(如果没有声明任何构造函数的话),复制构造函数、重载赋值运算符函数、析构函数,这些都是public权限且是inline的。   1.默认构造函数和析构函数主要是掉哟个了基类和非静态成员变量的构造函数的析构函数,注意,编译器产出的析构函数是个non-virtual函数,除非这个类的基类中的析构函数是virtual的。   2.至于复制构造函数,编译器产出的版本知识单纯将来源对象的每个非静态成员变量拷贝到目标对象。  3. 编译器所生成的

2020-06-07 13:27:36 126

原创 条款 04:确定对象被使用前已先被初始化

一、对于

2020-06-07 12:35:11 148

原创 条款 03:尽可能使用 const

文章目录一、const修饰指针二、const修饰迭代器三、const修饰函数1.const修饰返回值2.const修饰类的成员函数四、请记住一、const修饰指针   const修饰指针时,可以修饰其指针本身,指针所指物或这两者都修饰。  虽然看似情况挺多,但要区分并不难。如果关键字const出现在星号 * 的左边,表示被指物是个常量,不能通过指针修改所指物;如果出现在 * 右边,则表示指针是一个常指针,不能修改其指向。如果出现在 * 两边,表示被指物和指针都是常量。  结合下面的

2020-06-06 19:38:09 106

原创 条款 02:尽量以 const, enum, inline 替换 #define

文章目录一、用const替换#define1. 发生编译错误时,很难追踪2.没有封装性,不能限制作用域二、用enum代替#define三、用inline代替#define四、请记住一、用const替换#define   #define 存在以下的问题:1. 发生编译错误时,很难追踪#define PI 3.14    如果运用了上面定义的常量时,由于在预编译时,所以用到了PI的地方全部都已经被替换掉了,若发生编译错误,错误信息只会提到3.14,而不是PI,非常的难以追踪

2020-06-06 17:48:03 103

原创 LeetCode:151. 翻转字符串里的单词

给定一个字符串,逐个翻转字符串中的每个单词。示例 1:输入: “the sky is blue”输出: “blue is sky the”示例 2:输入: " hello world! "输出: “world! hello”解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。示例 3:输入: “a good example”输出: “example good a”解释:如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。..

2020-06-06 15:45:51 64

原创 条款 01:视 C++ 为一个语言联邦

C++是个多重范型编程语言,主要分成以下四个次语言:1.C语言:C++是以C为基础。比如语句、预处理器、内置数据类型、数组、指针等都来源于C。2.面向对象的C++:C++的面向对象部分。如构造函数、析构函数、封装、继承、多态、虚(virtual)函数(动态绑定)……等等,都是面向对象上设计的守则。3.泛型编程C++:C++的泛型(Template)编程部分。4.STL:C++的标准模板库。如容器(vector)、迭代器(iterator)、算法(algorithms)等都是通过

2020-06-06 15:44:58 392

原创 过河问题,C++(非搜索算法实现)

问题描述:农夫带着狼, 羊, 白菜过河,如果农夫没有在旁边看着它们, 狼就会吃羊, 羊会吃白菜,但是小船一次只能载一人一物。主要过程:判断农夫状态 -> 决定去右岸还是回左岸去右岸 -> 带哪一件物品(先判断这件物品是不是我刚带回来的!)带哪一件物品 -> 模拟带走以后,会不会相互伤害 -> 不相互伤害则带走(相互伤害则跳过)回左岸 -> 若独自一人回去...

2020-05-07 15:00:20 1062 1

原创 16位与32位汇编语言常用指令总结

对汇编指令的一些总结

2020-04-02 20:29:52 2774

win10汇编工具包.7z

给win10的操作系统,模拟dos系统,方便学习16位汇编,自己编写,然后编译,链接,debug。需要的朋友自己下载。

2020-04-03

空空如也

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

TA关注的人

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