C++
文章平均质量分 90
接受平凡 努力出众
执行力,就是生命力!
展开
-
C++学习笔记(十九)——stack和queue的模拟实现
是一种双开口的"连续"空间的数据结构,双开口的含义是:可以在头尾两端进行插入和删除操作,且时间复杂度为O(1),与vector比较,头插效率高,不需要搬移元素;与list比较,空间利用率比较高.deque底层结构它并不是一段连续的空间,而是由多个连续的小空间拼接而成,相当于一个动态的二维数组.如下图:deque的迭代器。原创 2022-12-10 12:39:25 · 906 阅读 · 1 评论 -
C++学习笔记(十八)——stack和queue
stack是一种先进后出的容器.stack是一种容器适配器,专门用在具有后进先出(last-in first-out)操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作.stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容器,并提供一组特定的成员函数来访问其元素,将特定类作为其底层的,元素特定容器的尾部(即栈顶)被压入和弹出stack的底层容器可以是任何标准容器,这些容器需要满足push_back,pop_back,back和empty几个接口的操作。原创 2022-12-10 11:08:13 · 621 阅读 · 4 评论 -
C++学习笔记(十七)——list的模拟实现
list迭代器类,实际上就是对结点指针进行了封装,对其各种运算符进行了重载,使得结点指针的各种行为看起来和普通指针一样。(例如,对结点指针自增就能指向下一个结点)原创 2022-12-10 11:09:00 · 676 阅读 · 1 评论 -
C++学习笔记(十六)——list
list本质是一个带头的双向循环链表list是一种可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立结点当中,在结点中通过指针指向其前一个元素和后一个元素。list与forward_list非常相似,最主要的不同在于forward_list是单链表,只能进行单方向迭代。与其他容器相比,list通常在任意位置进行插入、删除元素的执行效率更高。原创 2022-12-09 18:54:13 · 546 阅读 · 1 评论 -
C++学习笔记(十五)——vector练习题
只出现一次的数字思路:简单的位运算,对位运算想深入了解的可以看我这篇文章位运算。class Solution {public: int singleNumber(vector<int>& nums) { int n=0; for(int i=0;i<nums.size();i++) { n^=nums[i]; } return n; }};...原创 2022-05-07 12:01:44 · 1716 阅读 · 4 评论 -
C++学习笔记(十四)——vector的模拟实现
在vector中三个成员变量_start,_finish,_endofstorage.原创 2022-12-08 21:34:26 · 590 阅读 · 1 评论 -
C++学习笔记(十三)——vector
目录vector的介绍和使用vector的介绍vector的使用vector的定义vector的iteratorvector的三种遍历方式vector的空间增长问题vector的介绍和使用vector的介绍vector的使用文档1.vector是表示可变大小数组的序列容器2.就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它...原创 2022-05-07 11:05:37 · 1473 阅读 · 11 评论 -
C++学习笔记(十二)——String类练习题(下)
未来属于那些相信梦想,并愿意为之付诸行动的人。 仅仅反转字母字符串中的第一个唯一字符字符串最后一个单词的长度验证回文串字符串相加反转字符串||反转字符串中的单词|||字符串相乘找出字符串中第一个只出现一次的字符仅仅反转字母双指针我们使用 left指针从左边开始扫描字...原创 2022-04-20 21:45:06 · 2071 阅读 · 8 评论 -
C++学习笔记(十一)——String类的模拟实现
注意:此时我们将从find函数接收到的值镜面对称后,得到的是待查找字符串的最后一个字符在对象C字符串中的位置,而我们需要返回的是待查找字符串在对象C字符串中的第一个字符的位置,所以还需做进一步调整后才能作为rfind函数的返回值返回。append函数的作用是在当前字符串的后面尾插一个字符串,尾插前需要判断当前字符串的空间能否容纳下尾插后的字符串,若不能,则需要先进行增容,然后再将待尾插的字符串尾插到对象的后方,因为待尾插的字符串后方自身带有’\0’,所以我们无需再在后方设置’\0’。原创 2022-11-04 11:50:35 · 343 阅读 · 5 评论 -
C++学习笔记(十)——String类
前言今天我们来学习string类,读完本文不仅可以掌握string类的用法,还可以很轻松的解决下面问题: 917. 仅仅反转字母 - 力扣(LeetCode) (leetcode-cn.com) 387. 字符串中的第一个唯一字符 - 力扣(LeetCode) (leetcode-cn.com) 字符串最后一个单词的长度_牛客题霸_牛客网 (nowcoder.com) 125. 验证回文串 - 力扣(LeetCode) ..原创 2022-04-20 19:07:43 · 1378 阅读 · 13 评论 -
C++学习笔记(九)——模板初阶(泛型编程基础,函数模板,类模板)
未来属于那些相信梦想,并愿意为之付诸行动的人。 满满的泛型编程基本概念函数模板函数模板概念函数模板格式函数模板原理函数模板实例化模板参数的匹配原则类模板类模板的定义...原创 2022-04-15 12:17:37 · 450 阅读 · 9 评论 -
C++学习笔记(八)——内存管理
C/C++内存分布C/C++内存有六个区域 ,分别是栈、堆、数据段,代码段,内核空间和内存映射段。1. 内存栈区: 存放局部变量名,函数返回值,参数列表,函数栈帧等(8M左右)2. 内存堆区: 存放new或者malloc出来的对象;3. 常数区: 存放局部变量或者全局变量的值;4. 静态区: 用于存放全局变量或者静态变量;5. 代码区:二进制代码。栈:栈又叫堆栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等,是...原创 2022-04-14 16:12:34 · 1822 阅读 · 9 评论 -
C++学习笔记(七)——学生信息管理系统
前面已经学了C++的类和对象,对C++已经有了初步了解,为了加深对其应用,下面和大家一起学习编写学生信息管理系统。原创 2022-11-02 23:41:04 · 12300 阅读 · 16 评论 -
C++学习笔记(六)——日期类的实现
在前面的章节中,已经初步理解类和对象的基本思想,也知道了类和对象的一些特性。而前面一直贯穿着我们学习类和对象的例子“日期类(Date)”一直只是定义了它的属性,而这一章我们就要运用前面的知识去完善这一个日期类的实现!原创 2022-11-01 18:23:45 · 449 阅读 · 3 评论 -
C++学习笔记(五)——类和对象(下)
在定义时就必须进行初始化的变量类型,就必须放在初始化列表进行初始化。三。原创 2022-11-01 18:11:59 · 426 阅读 · 3 评论 -
C++学习笔记(四)——类和对象(中)
1. 类的6个默认成员函数如果一个类中什么成员都没有,简称为空类,空类中什么都没有?并不是的,任何一个类在我们不写的情况下,都会自动生成下面6个默认成员函数。class Date{};2. 构造函数2.1 概念概念:构造函数是一个特殊的成员函数,名字与类名相同,创建类类型对象时由编译器自动调用,保证每个数据成员都有 一个合适的初始值,并且在对象的生命周期内只调用一次。...原创 2022-02-20 17:48:59 · 712 阅读 · 6 评论 -
C++学习笔记(三)—— 类和对象(上)
目录1. 面向过程和面向对象2. 类的引入与定义2.1 类的引入2.2 类的定义3. 类的访问限定符及封装3.1 访问限定符3.2 封装4. 类的作用域5. 类的实例化6. 类对象的存储方式及大小计算6.1 存储方式6.2 大小计算7. this指针7.1 this指针的引出7.2 this指针的特性1. 面向过程和面向对象C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。C++是基于面向对象的,.原创 2022-02-19 15:09:02 · 704 阅读 · 15 评论 -
C++学习笔记(二)——extern “C“ 用法详解
目录extern "C"是什么?使用场景:静态库的创建C++程序调用C写的静态库C程序调用C++写的静态库extern "C"是什么?前面一章节简单的介绍了extern "C"的基本概念就是有时候在C++工程中可能需要将某些函数按照C的风格来编译,在函数前加extern "C",意思是告诉编译器,将该函数按照C语言规则来编译。这一章将进行详细介绍其用法,为了更好地了解,下面将举个OJ题实例:使用场景:题目:有效括号解这道题需要我们自己写个栈,但..原创 2022-02-19 12:00:56 · 2927 阅读 · 12 评论 -
C++学习笔记(一)——入门基础
目录1. 命名空间1.1命名空间定义1.2 命名空间使用2. C++输入&输出3. 缺省参数3.1 概念3.2 缺省参数分类4. 函数重载4.1 概念4.2 名字修饰5. extern "C"(下一章做重点介绍)6. 引用6.1 概念6.2 引用特性6.3 常引用6.4 使用场景6.5 引用和指针的区别7. 内联函数7.1 概念7.2 特性8. auto关键字(C++11)8.1 简介8.2 auto的...原创 2022-02-17 15:02:30 · 805 阅读 · 20 评论