自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 知道年和当年的第几天打印出规范的日期

#include<iostream>using namespace std;int main(){ int year,month,day,n; cin>>year>>n; static int monthdays[13]={0,31,59,90,120,151,181,212,243,273,304,334,356}; int i; for(i=1;i<=13;i++) { if(n<=.

2022-04-16 19:41:13 341

原创 多态1...

多态的概念通俗来说就是多种形态,具体就是去完成某个行为,当不同的对象去完成时会产生出不同的状态多态两个条件:1、子类重写父类的虚函数2、必须是父类的指针或者引用去调用虚函数(指向谁就调用谁的虚函数)class Person{public: virtual void BuyTicket()//虚函数 { cout << "正常排队-全价买票" << endl; }protected: int _age; string _name;};class Stu

2022-03-04 15:05:43 179

原创 继承2...

继承与友元友元关系不能被继承,父类和子类的友元要分别去处理class Student;class Person{public: friend void Display(const Person& p, const Student& s);protected: string _name; // 姓名};class Student : public Person{ friend void Display(const Person& p, const Stud

2022-03-04 13:39:11 614

原创 继承...

赋用赋用访问私有成员变量不好处理,所以面向对象有了继承的方式1、 继承基类(父类)成员访问方式的变化#include<iostream>#include <string>using namespace std;class Person{public: void Print() { cout << "name:" << _name << endl; cout << "age:" << _age

2022-02-23 21:22:22 243

原创 8、进程1

1、冯诺依曼体系2、操作系统

2022-01-19 19:59:04 302

原创 2、linux权限

1、进程当用户登录linux系统的时候,系统会给用户创建一个进程,一般叫做bash(命令行解释器)什么是shell: 包裹在操作系统外层的一层软件层为什么要存在shell:1、主要解决用户不擅长和操作系统打交道的问题,传递请求和反馈2、shell承当保护操作系统的角色shell和bash的关系: shell(媒婆)是外壳程序的统称,bash(王婆)是代指一个具体的shell命令行解释器(即外壳shell)的核心作用:1、将用户请求任务,传递给操作系统2、将操作系统对应的执行结果,通过外壳,

2022-01-18 20:37:23 813 1

原创 1、Linux指令

1、ll、ls2、cd pwdcd+路径=跳转去那个路径pwd 显示当前路径cd-快速的在最近操作的路径下跳转两次cd-就会回到原来的目录cd ~ 进入当前用户的家目录(默认登录成功所处的路径)3、linux的目录是树状结构多叉树中非叶子节点一般是什么–目录叶子节点一般是什么–正常的文件or空目录4、绝对路径和相对路径绝对路径–路径对应的文件一直可以找到为何通过路径能标识唯一的一个文件–多叉树中路径具有唯一性5、touch创建普通文件6、stat文件时间7、

2022-01-18 20:04:01 529

原创 6、linux初始小程序

1、缓冲区倒计时程序完整的代码倒计时程序各种实现方式的比较2、

2022-01-16 18:09:49 536

原创 5、make/Makefile--自动化构建工具

依赖关系第一阶段第二阶段第三阶段makefile的推导过程(编译过程来解释)–理解

2022-01-15 17:41:08 214

原创 4、gdb调试器

1、gdb(linux的调试器)linux中,默认编译的时候->动态链接,使用动态库linux中,默认编译的时候->默认生成的可执行程序是release版本的,不可调试,若需要调试,则编译的时候需要加-g变为debug版本才能进行调试vim的使用和gdb的调试第一阶段的调试第二阶段的调试代码改正后重新编译...

2022-01-15 16:09:50 124

原创 3、软件安装(vim)

1、软件安装软件的方法源码rpm包安装yum命令行(a、帮我们查找并下载 b、帮我们安装 c、帮我们解决依赖关系)如何理解yumyum是一条命令(yum相当于我们手机上的应用商店)yum->命令/工具(配置文件,指明我们应该去哪里下载资源)2、安装软件安装lszrzsudo yum install -y lszrzgrep来查看sl软件yum list | grep sl查看结果安装软件sudo yum install sl

2022-01-14 20:35:03 291

原创 合并两个有序的数组--顺序表

return dest+1

2021-12-12 09:20:49 598

原创 函数 / 类模板--模板2

这样N开20000满足st2但是对st1太大,st1只需要100则st1会浪费很多空间#include <iostream>#include <array>#include <vector>#include <queue>#include <functional>using namespace std;// 静态的栈--不需要capacity#define N 20000template<class T>clas..

2021-12-10 21:13:02 398

原创 priority_Queue优先级队列-- 容器适配器

priority_Queue–没有template模板单纯实现随意形成大堆和小堆#pragma once#include <vector>namespace bit{ template<class T> class Less//反函数--重载一个运算符 { public: //重载运算符()--函数名(形参表) bool operator()(const T& x, const T& y) { return x < y; .

2021-12-09 22:53:35 688

原创 数组中的第k个最大的元素--优先级队列、排序、堆、排序

第一大的是6,第二大的是5,所以输出5方法1:排序–时间复杂度不好O(N*logN)–底层是快排升序降序或者方法2:优先级队列–空间复杂度不好O(N+klogN)–建堆为N,每次出数据向下调为logN,出k次为klogN空间复杂度为O(N)–k个数大堆底层要存储方法3–最优方法*时间复杂度:O(K+(N-k)logK)–建立k个数的小堆,N-K个数进行pop和push再调整k个数的小堆空间复杂度:O(k)–建立k个数的小堆当N远大于K时,这种方法更有。尤其是N大..

2021-12-08 21:48:35 313

原创 栈和队列--容器适配器

stack.cpp#include <iostream>#include <stack>#include <queue>#include <forward_list>#include <algorithm>#include <list>using namespace std;//栈--后进先出void test_stack(){ stack<int> st; st.push(1); st.push(

2021-12-08 20:14:14 688

原创 逆波兰表达式(后缀表达式)的运算 --stack

2021-12-08 12:20:43 121

原创 出栈和入栈是否相等 --stack

2021-12-07 22:08:31 243

原创 最小栈 --stack

O(1)

2021-12-07 21:51:04 68

原创 List的模拟实现

insert迭代器需不需要实现析构、拷贝构造、赋值重载不需要默认生成就好了,因为节点属于链表的,不是迭代器的

2021-12-07 20:55:59 490

原创 字符串转整数--string

class Solution {public: int StrToInt(string str) { int flag=1; long long number=0; for(int i=0;i<str.size();i++) { //开头为空格· // if(str[i]==' ') // { // continue; // } .

2021-11-14 11:00:59 279

原创 比赛预测结果

int main(){ int a = 0;int b = 0;int c = 0;int d = 0;int e = 0; for (a = 1; a <= 5; a++) { for (b = 1; b <= 5; b++) { for (c = 1; c <= 5; c++) { for (d = 1; d <= 5; d++) { for (e = 1; e <= 5; e++) { if (.

2021-11-14 10:14:36 313

原创 杨氏矩阵。

#include<stdio.h>int main(){ int a[3][3]={1,2,3,4,5,6,7,8,9}; int k=0; printf("请输入一个数字:"); scanf("%d", &k); int left = 0; int right = 2; while (left >= 0 && left <= 2 && right >= 0 && right <= 2){ .

2021-11-14 10:11:16 497

原创 调整数组使奇数全部都位于偶数前面

#include<stdio.h>#define n 5//void print(int a[])//{// int i=0;// for (i = 0; i < n; i++)// printf("%d ", a[i]);//}void move(int a[]){ int left = 0; int right = n-1; while (left < right) { while (a[left] % 2 != 0) left++; w

2021-11-14 10:05:09 841

原创 字符串逆序

#include<string.h>#include<stdio.h>#include<math.h>void reverse(char *a){ int b = strlen(a); int left = 0; int right = b - 1; while (left < right) { char t = a[left]; a[left] = a[right]; a[right] = t; left++; right-

2021-11-14 09:59:33 900

原创 List..

List的使用test.cpp#include <iostream>#include <list>#include <vector>using namespace std;namespace std{ void test_list1() { //初始化 list<int> lt1; //10个5 list<int> lt2(10, 5); //自己的迭代器来初始化 list<int> lt3(l

2021-11-11 22:23:11 687

原创 vector的模拟实现

vector.h#pragma oncenamespace bit{ template<class T> class vector { public: //迭代器 typedef T* iterator; typedef const T* const_iterator; const_iterator begin() const { return _start; } const_iterator end() const { return .

2021-11-11 21:30:41 2684

原创 删除有序数组中的重复项--vector

class Solution {public: int removeDuplicates(vector<int>& nums) { if(nums.size()<2) { return nums.size(); } int j=1; for(int i=0;i<nums.size()-1;++i) { if(nums[i]!=nums[i+1]) { .

2021-11-07 20:51:36 98

原创 vector

vector的重点构造函数vector就是一个顺序表vector是一个顺序容器,是一个大小(size)可以改变的数组遍历void test_vector1(){ vector<int> v; v.push_back(1); v.push_back(2); v.push_back(3); v.push_back(4); v.push_back(5); //遍历 // 1、下标+[] for (size_t i = 0; i < v.size(); ++i)

2021-11-06 21:38:55 751

原创 杨辉三角 --vector

2021-11-06 20:11:48 141

原创 只出现一次的数字--vector

1class Solution {public: int singleNumber(vector<int>& nums) { int ret=0; // for(int i=0;i<nums.size();i++) // { // ret=ret^nums[i]; // } // for(auto e:nums) // {

2021-11-06 19:23:09 133

原创 string的模拟实现

string.h#pragma once#include<assert.h>namespace bit{ class string { public: //默认 /*string() :_str(new char[1]) , _size(0) , _capacity(0) { *_str = '\0'; }*/ //全缺省 //string(char* str = nullptr)--err,当什么都不传的时候下面strlen会对空指针解引用

2021-11-05 16:17:33 86

原创 深、浅拷贝

浅拷贝string.h#pragma oncenamespace bit{ class string { public: string(char* str) :_str(new char[strlen(str) + 1]) { strcpy(_str, str); } ~string() { delete[] _str; _str = nullptr; } char& operator[](size_t pos) { r.

2021-11-04 21:00:55 95

原创 反转字符串中的单词--String

swapclass Solution {public: string reverseWords(string s) { int i=0; int begin=0,end; for(i=0;i<s.size()+1;i++) { if(s[i]==' '|| s[i]=='\0') { for(end=i-1;begin<end;begi.

2021-10-31 21:43:22 99

原创 有条件的反转字符串--String

class Solution {public: //使用c++库里面的reverse string reverseStr(string s, int k) { //每次走2k个字符 for(int i=0;i<s.size();i=i+2*k) { //当字符个数大于k小于2k的时候,反转前k个字符 if(i+k<=s.size()) { reverse.

2021-10-31 20:16:16 101

原创 两个字符串相加--String

O(N^2)因为insert头插需要挪动数据来插入O(N)

2021-10-30 17:41:29 226

原创 验证回文串--String

简单写法复杂写法

2021-10-30 17:06:05 104

原创 字符串最后一个单词的长度--String

2021-10-30 10:39:12 99

原创 字符串中的(第一个唯一/只出现一次)的字符--String

运用计数排序的思想

2021-10-30 10:30:24 159

原创 String重点接口

SLT的六大组件编码String多看文档官网可代替官网1、char和wchar_t#include <string>int main(){ cout << sizeof(char) << endl; cout << sizeof(wchar_t) << endl;}2、String构造#include<string.h>int main(){ string s1; string s2("

2021-10-30 10:22:55 99

空空如也

空空如也

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

TA关注的人

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