自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 map、multimap

1 map/ multimap容器1.1 map基本概念简介:map中所有元素都是pairpair中第一个元素为key(键值),起到索引作用,第二个元素为value(实值)所有元素都会根据元素的键值自动排序本质:map/multimap属于关联式容器,底层结构是用二叉树实现。优点:可以根据key值快速找到value值map和multimap区别:map不允许容器中有重复key值元素multimap允许容器中有重复key值元素1.2 map构造和赋值功能描述:对

2021-09-29 18:09:03 421

原创 List

1 list基本概念功能:将数据进行链式存储链表(list)是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的链表的组成:链表由一系列结点组成结点的组成:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域STL中的链表是一个双向循环链表由于链表的存储方式并不是连续的内存空间,因此链表list中的迭代器只支持前移和后移,属于双向迭代器list的优点:采用动态存储分配,不会造成内存浪费和溢出 链表执行插入和删除操作十分方便,修改指针即可,

2021-09-28 20:27:29 135

原创 vector

1、vector1.1 vector基本概念功能:vector数据结构和数组非常相似,也称为单端数组vector与普通数组区别:不同之处在于数组是静态空间,而vector可以动态扩展动态扩展:并不是在原空间之后续接新空间,而是找更大的内存空间,然后将原数据拷贝新空间,释放原空间vector容器的迭代器是支持随机访问的迭代器1.2 vector构造函数功能描述:创建vector容器函数原型:vector<T> v; //采用模板实现类

2021-09-19 20:45:48 131

原创 string

1、string1.1 string基本概念string是C++风格的字符串,而string本质上是一个类string和char * 区别:char * 是一个指针string是一个类,类内部封装了char*,管理这个字符串,是一个char*型的容器。特点:string 类内部封装了很多成员方法例如:查找find,拷贝copy,删除delete 替换replace,插入insertstring管理char*所分配的内存,不用担心复制越界和取值越界等,由类内部进行负责1.2 strin

2021-09-18 21:02:50 71

原创 stack and queue

1、stack栈(容器适配器)1.1 stack 基本概念概念:stack是一种先进后出(First In Last Out,FILO)的数据结构,它只有一个出口栈中只有顶端的元素才可以被外界使用,因此栈不允许有遍历行为栈中进入数据称为 — 入栈 push栈中弹出数据称为 — 出栈 pop1.2 stack 常用接口功能描述:栈容器常用的对外接口构造函数:stack<T> st; //stack采用模板类实现, stack对象的默认构造形式stack(const s

2021-09-18 20:49:39 189

原创 hash table

哈希表实现的三种方式1、数组2、set3、map1、数组数组就是一个简单哈希表,1、定义一个数组叫做record来记录字符串出现的次数如int record[26]={0};跟比较字母有关的都可以考虑这样初始化2、字符a映射为下标0,字符z映射为下标25实例1:有效的字母异位词实例2:1002查找常用字符,两两比较其中memset初始化,对每个字节初始化,和直接int record[26]={0};效果一样实例3:383赎金信 和实例1极为相似

2021-09-16 19:59:40 120

转载 STL容器基础语法介绍

STL容器基础语法介绍转载自【生命是有光的】:https://blog.csdn.net/Augenstern_QXL/article/details/117253848

2021-08-27 15:46:08 95

原创 滑动窗口题解

题解1:209. 长度最小的子数组给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。示例 1:输入:target = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是该条件下的长度最小的子数组。示例 2:输入:target = 4, nums = [1,

2021-08-24 12:21:58 81

原创 C++ Primer Plus笔记-----第七章 函数

1、函数和数组int sum_arr(int arr[],int n)//函数声明时,arr实际并不是表示一个数组,而是一个指针,此时的arr[]表示数组第一个元素的地址,也就是数组的起始地址;//在编写函数的其余部分时,可以将arr看成一个数组仅当用于函数头或函数原型中,才等价于int sum_arr(int *arr,int n)1.1 c++将数组名解释为其第一个元素的地址,如cookies=[1,2,3,4,5,6,7,8];cookies==&cookies[0];

2021-08-24 09:22:38 130

原创 双指针法题解

题目1:26. 删除有序数组中的重复项给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以“引用”方式传递的。也就是说,不对实参做任何拷贝int len =

2021-08-21 11:15:45 82

原创 二分查找题解

题目1:704. 二分查找给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例 2:输入: nums = [-1,0,3,5,9,12], target = 2输出: -1解释: 2 不存在 nums 中因此返回 -1cla

2021-08-19 20:01:22 123

转载 王道计算机网络笔记

转载:https://blog.csdn.net/weixin_43914604/article/details/104722679

2021-08-17 14:52:07 188

原创 黑马教程学习笔记——string容器

1、string基本概念#include<iostream>using namespace std;#include<string>#include<vector>#include<algorithm>void test01(){ string s1;//默认构造 const char * str = "hello world"; string s2(str); cout << "s2=" << s2 <

2021-07-23 18:59:47 68

原创 黑马教程学习笔记——vector

1、vector存放内置数据类型#include<iostream>using namespace std;#include<string>#include<vector>#include<algorithm>//vector容器存放内置数据类型void myPrint(int val){ cout << val << endl;}void test01(){ //创建了一个vector容器 数组 ve

2021-07-23 12:17:10 143

原创 黑马教程学习笔记——类模板

1、类模板#include<iostream>using namespace std;#include<string>//类模板template <class NameType,class AgeType>class Person{public: Person(NameType name, AgeType age) { this->m_Name = name; this->m_Age = age; } NameType m_N

2021-07-21 20:33:38 111

原创 黑马教程学习笔记——运算符重载

1、加号运算符重载#include<iostream>#include <string>using namespace std;class Person{public: //1、成员函数 重载+号 /*Person operator+(Person &p) { Person temp; temp.m_A = this->m_A + p.m_A; temp.m_B = this->m_B + p.m_B; return temp;

2021-07-18 18:38:13 153

原创 黑马教程学习笔记——友元

1、全局函数做友元#include<iostream>#include <string>using namespace std;//友元的三种实现 friend//全局函数做友元//类做友元//成员函数做友元class Building{ friend void goodGay(Building *building);public: Building() { m_SittingRoom = "客厅"; m_LivingRoom = "起居室";

2021-07-18 10:30:44 111

原创 黑马教程学习笔记——对象特性(2)

1、类对象作为类成员#include <iostream>#include<string>using namespace std;class Phone{public: Phone(string pName) { cout << "Phone构造函数调用" << endl; m_PName = pName; } ~Phone() { cout << "Phone析构函数调用" << endl; }

2021-07-17 21:41:07 62

原创 黑马教程学习笔记——对象特性(1)

1、构造函数和析构函数#include <iostream>using namespace std;//对象的初始化和清理class Person{ //1、构造函数 //没有返回值 不用写void //函数名 与类名相同 //构造函数可以有参数 可以发生重载 //创建对象的时候吧,构造函数会自动调用,而且只调用一次public: Person() { cout << "构造函数调用" << endl;//不写的话,也会打印空值 } //

2021-07-17 15:31:12 57

原创 黑马教程学习笔记——封装

1、封装–属性和行为//类和对象--封装#include<iostream>using namespace std;const double PI = 3.14;//class代表设计一个类,类后面紧跟着的就是类名称class Circle{ //访问权限 //公共权限public: //属性 半径 int m_r; //行为 获取周长 double calculateZC() { return 2 * PI*m_r; }};int main()

2021-07-16 20:24:55 67

原创 黑马教程学习笔记——函数重载

1、函数重载//函数重载//作用;函数名可以相同,提高复用性//函数重载满足条件://同一个作用域//函数名称相同//函数参数类型不同 或者个数不同 或者顺序不同//函数的返回值不可以作为函数重载的条件//int func()//{// cout << "func的调用" << endl;//}#include <iostream>#include <string>using namespace std;void func(

2021-07-15 20:34:08 58

原创 黑马教程学习笔记——引用

1、引用的含义//引用:取别名//语法:数据类型 &别名=原名#include <iostream>#include <string>using namespace std;int main(){ int a = 10; int &b = a; cout << a <<endl;//10 cout << b << endl;//10 b = 100; cout << a <

2021-07-15 17:40:13 88

原创 黑马教程学习笔记——内存四区

1、内存区分模型1)、代码区:存放函数体的二进制代码,由操作系统进行管理;存放CPU执行的机器命令;代码区是共享和只读的2)、全局区:存放全局变量和静态变量以及常量(字符串常量和其他常量);该区域的数据在结束后由``系统释放2、栈区:由编译器自动分配释放,存放函数的参数值,局部变量等#include <iostream>#include <string>using namespace std;//栈区数据注意事项--不要返回局部变量的地址//栈区的数据由编译器管理开

2021-07-15 16:03:47 83

原创 黑马教程学习笔记——结构体

1、结构体定义和使用//结构体定义和使用#include <iostream>#include <string>using namespace std;//1、创建学生数据类型:学生包括(姓名,年龄,分数)struct Student{ //成员列表 //姓名 string name; //年龄 int age; //分数 int score;}s3;// int main(){ //2.1 struct Student s1;struct可省

2021-07-15 11:02:04 115

原创 黑马教程学习笔记----指针

1、常量指针、指针常量#include <iostream>using namespace std;int main() { //1、const修饰指针 常量指针 int a = 10; int b = 10; const int * p = &a; //指针的指向可以改,指针的值不可以改 //*p=20;错误 p = &b;//正确 //2、const修饰常量 //指针的指向不可以改,指针的值可以改 int *const p2 = &a;

2021-07-09 16:04:03 45

原创 黑马教程学习笔记——函数模板

函数模板注意事项#include <iostream>using namespace std;//函数模板注意事项template<typename T>//typename可以替换成classvoid mySwap(T&a, T&b){ T temp = a; a = b; b = temp;}//1.自动类型推导,必须推导出一致的数据类型T才可以使用void test01(){ int a = 10; int b = 20; my

2021-05-05 19:19:53 160

原创 黑马教程学习笔记–多态

1.多态的基本语法#include<iostream>#include<string>using namespace std;//多态//动物类class Animal{public: //虚函数 virtual void speak()//添加virtual 可以执行子类函数,即小猫在说话 { cout << "动物在说话" << endl; }};//猫类class Cat :public Animal{publ

2021-05-05 19:18:45 165

原创 黑马教程学习笔记——文件操作

1、写文件#include <iostream>using namespace std;#include<fstream>//文本文件 写文件void test01(){ //1.包含头文件 fstream //2.创建流对象 ofstream ofs; //3.打开文件 并且判断是否打开成功 ofs.open("test.txt", ios::out); //4.写内容 ofs << "姓名:张三" << endl; //5

2021-05-05 14:43:14 233 1

原创 黑马教程学习笔记--继承

继承方式1.公共继承#include<string>using namespace std;//继承方式//1.公共继承class Base1{public: int m_A;protected: int m_B;private: int m_C;};class Son1 :public Base1//继承函数语法 class 子类 :继承方式 父类{ void func() { m_A = 10;//父类中的公共权限成员 到子类中依然是公共权限

2021-04-27 14:11:31 92

空空如也

空空如也

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

TA关注的人

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