自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++11线程库的基本使用

C++11线程库的使用thread引言c++11中的thread线程库,是跨平台的,使用编写多线程程序更加的方便。最近在学习thread线程库,所以记录一下,以后忘记了可以回顾回顾。需要包含头文件#include <thread>构造函数三个构造函数默认构造 – thread()创建一个不带执行函数(不执行任务)的线程对象。构造时指定线程执行函数和参数 – thread(_Fn&& _Fx, _Args&&... _Ax)

2021-08-26 16:06:54 371

原创 把shell脚本制作成系统命令

首先我们要把所需的脚本文件准备好good.sh#!/bin/bash 2 3 for i in {1..5} 4 do 5 echo "靓仔,你好啊~~~" 6 done然后把该脚本文件复制到/usr/bin目录下,可以把.sh后缀去掉sudo cp ..

2021-08-03 14:52:50 1830 1

原创 理想汽车-2022界校园招聘(秋招)笔试题

笔试算法题1.用栈实现队列这道题是很经典的题目了,比较简单,我们只需要对栈的特性和队列的特性分析即可。思路:题目要求使用两个栈实现一个队列,而且只需要实现两个基本的操作,push和pop。我们可以使用一个栈来装队列的元素,直接进队;当要进行出队操作时,由于栈是先进后出,队列是先进先出,也就是我们需要出队的元素在栈底,那么就要使用另外一个栈,把原栈的元素逐一进新栈,那么新栈的栈顶元素就是原栈的栈底元素。讲的有点啰嗦,看代码class Solution{public: void push(

2021-07-30 00:02:16 9632 5

原创 C++STL的vector扩容原理及实现

C++的STL中vector的扩容思想及实现原理C++的STL库中的vector,是一种使用很频繁的容器,因为它是一个自动扩容的容器,使用起来比较灵活,可以一直往容器的末尾添加数据。那么它是怎么实现自动扩容的呢?其实关键点就是对于容器里的元素数量进行判断,当容器的存储数量已经达到容量时,那么就需要进行一个倍增扩容了。整体的一个扩容流程为:申请新的内存空间(空间大小为原空间的两倍或一点五倍)—> 把原空间的元素拷贝到新的空间里 —> 释放原空间 —> 数组指针指向新空间。实现vec

2021-07-26 16:59:31 4830

原创 vscode搭建leetcode刷题环境

vscode搭建leetcode刷题环境首先要安装好node.jshttps://nodejs.org/zh-cn/下载完成后,一路next安装。打开命令行查看是否安装完成出现版本号信息说明配置完成。打开vscode,在扩展出输入leetcode下载插件完成后,左侧会有一个图标然后选择版本,这里需要切换至中国版。然后就是登录你的leetcode账号了最后就是开始做题了点击code new, 写完代码后就可以提交测试了。...

2021-07-15 11:54:57 816 1

原创 重载、重写(覆盖)和隐藏

C++基础(4)重载、重写(覆盖)和隐藏**重载 **重载是什么呢?函数的重载就是使用同一个函数名,而里面的参数或者放回类型不一样,也就是写多个名字相同的函数,函数的参数是不一样的,可以实现使用相同的函数名,传不一样的参数,就能得到不一样的结果。#include <iostream>#include <string>using namespace std;int add(int a, int b) { return a + b;}double add

2021-06-18 22:54:15 163

原创 C++的三大特性(面向对象的特点)

C++基础(3)C++是面向对象的编程语言C++是面向对象的语言,对于面向对象的语言,都是具有封装 继承和多态这几个特点的。面向对象C++中使用class来对某些具备相同特性的事物进行大致概述,比如人类,共同的属性有手,脚,脸部,头发等,在我们构建一个类的时候,这些属性就是这个类的属性,一些人类的行为就可以作为人类的方法。虽然有了这些属性和方法,但是类依旧是一个很抽象的存在。那么,在我们使用时,就需要把类实例化,也就是创建类对象。犹如女娲造人,造出来的人都是有自己的名字,样貌,性格等。封装对于类

2021-06-17 23:37:02 1281 1

原创 C/C++中的动态内存分配

C++基础(2)new/delete 和 malloc/free之间的关系和使用性质和作用new/delete和malloc/free都是可以用来申请动态内存的,malloc/free是c函数库的函数void *malloc(size_t size)void free(void *prt)而new/delete是C++里面的运算符区别malloc/free只会为我们申请一块动态内存,在实例化一个对象时不会调用类对象的构造函数,以及释放内存时不会调用析构函数。new/delete在实例化和释

2021-06-16 12:00:53 96 2

原创 指针和引用

C++基础 (1)指针和引用两者之间的区别指针是用来指向某一块内存地址的变量,在定义时存在自己的内存,我们可以通过指针修改指向地址的内容,一般定义时还没确定指向时可以赋值为NULL(C写法)或nullptr(C++写法)。引用是一个变量的别名,没有自己的内存空间,定义时就需要初始化,修改引用的值就是在修改变量的实际值,引用底层就是使用指针实现的。什么时候使用指针1.传递大型结构并且"只读"其元素的时候,因为大型结构通过值传递,需要拷贝其每个元素, 这样效率太低。2.动态分配空间时,使用指针。

2021-06-15 22:36:25 109 1

原创 最简单配置vim

一个插件使你的vim用起来更舒服vimplus安装步骤:适用于Linux-64位只需要一下几步即可1、git clone https://github.com/chxuan/vimplus.git ~/.vimplus2、cd ~/.vimplus3、./install.sh只需要这些步骤,就可以达到下面这个效果了。如果需要配置得更的心应手,可以去安装各种插件哟~~~......

2021-05-07 08:18:51 289

原创 智能指针---shared_ptr

C++11新特性之智能指针—shared_ptr(共享指针)1、为什么会有智能指针这个东西呢?C++语言本身是没有内存回收机制的(在此不得不羡慕用Java的大佬们),我们申请动态内存的时候,需要自己释放。忘记释放怎么办,能怎么办,泄漏呗!2、C++11则引入了智能指针,智能指针是存储指向动态分配(堆)对象指针的类,用于生存期的控制,能够确保在离开指针所在作用域时,自动地销毁动态分配的对象,防止内存泄露。智能指针的核心实现技术是引用计数,每使用它一次,内部引用计数加1,每析构一次内部的引用计数减1,减为0

2021-05-06 15:27:37 331

原创 C/C++链表初始化,分配内存

#C/C++链表##调用定义函数传参###引用或二级指针//双向链表结构体 typedef struct _LinkList { int data; _LinkList* next;//指向下一节点 _LinkList* prev;//指向上一节点}LinkList,LinkNode;初始化双向链表或单链表时://初始化双向链表bool InitList(LinkList*& L) { L = new LinkList; if (!L) return false;

2020-10-19 20:22:04 1639

空空如也

空空如也

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

TA关注的人

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