自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(14)
  • 收藏
  • 关注

原创 c++ return * this的理解

C++ return * this的理解在c++代码中自定义操作符的时候,例如前置++, = 赋值操作的时候会返回*this。this是类自带的指针,指代的是对象本身。*this对指针解引用,因此使用*this返回的就是一个对象本身。这样的操作可以满足连续的= (赋值操作)。试想一下如果返回的是this,那么返回的是指针。#include <iostream>using namespace std;class Test{public: int m_i; doubl

2021-10-31 16:09:36 3906 2

原创 c++ putchar() 和getchar()

c++ putchar() 和getchar()getchar and putchar 是cstdio 库中的两个字符函数,一个从终端读入字符,一个向终端输出字符。putchar 向终端输出基本形式:输出得到的int对应的字符int putchar(int ch)#include <iostream>// #include <cstdio>#include <cctype>#include <string>using namespace st

2021-10-30 17:09:42 695

原创 c++进制转换

c++进制转换十进制到其他进制转化十进制转化成二进制的原理:如果是整数,就把该十进制整数除以2,余数保存,商接下来继续除以2,直到商为0;再从后到前保存下余数得到就是该数的二进制数。其他进制转化原理类似;// 十进制到二进制/八进制的转化string decToOther(int a, int bit){ string b; stack<int> st; while (a != 0) { int left = a % bit;

2021-10-15 09:25:17 100

原创 c++ extern 变量

c++ extern关键字extern 变量extern 置于变量或者函数前面,声明了该变量,但是变量或函数定义在别处。如果在多个文件中使用同一个变量,必须将声明和定义分离。此是变量的定义只能出现在一个文件中,而其他用到该变量的文件需要声明。注意不能对变量进行初始化或者对函数进行定义, 否则表明这是一个定义而不是声明.int a; //这是定义int a = 1; //这也是定义extern int a; //这是声明extern int a = 1;//这是定义,extern没用了。

2021-10-14 21:01:00 760

原创 windows terminal 美化你的终端方案

美化你的终端方案vscode 或者windows terminal 美化的时侯的配色方案可以在这个github项目内查找。选择好合适的配色之后,就在对应的文件夹内寻找合适的文件。可以看着这里给出了vscode, windowstermial等支持的配色文件。...

2021-10-12 09:28:18 404

原创 关于c++ 条件编译 _OPENMP

关于c++ 条件编译 _OPENMP_OPENMP是编译器预定义的。一般在程序中用来作为条件编译的条件,来判断是否使编译openmp的程序。#ifdef _OPENMP // openmp 需要的部分;#ENDIF这里给一个简单的例子#include <cstdio>int main(){ #ifdef _OPENMP printf("compiled by an OPENMP compliant implementation\n"); #endif

2021-10-11 23:35:56 584

原创 c++ 智能指针

c++ 智能指针c++的动态内存很容易出现问题(忘记释放内存导致内存泄漏;释放还有指针引用的内存导致空悬指针)。为了避免这些问题的出现引入 智能指针 。智能指针类似于普通的指针但是会在合适的时候自己释放内存。智能指针有:shared_ptr<T>;unique_ptr<T>;weak_ptr<T>;shared_ptr类创建#include<memory>#include<vector>#include<string&

2021-03-28 21:08:39 55

原创 操作系统 进程同步和通信

操作系统 进程同步和通信死锁:进程间争夺资源而相互等待,以至于进程无法运行并发执行的实现并发编程方法要想让任务中的并发成分能够并发执行,通常有如下三种方法:编写顺序程序,系统来识别顺序程序的并发成分,利用操作系统支持的进程机制分发这些任务由程序员识别并发成分,利用并发程序设计语言编写设计并发的程序,在编译时由编译系统安排创建相应的一组进程程序员识别并发,利用操作系统的进程机制提供的系统调用的并行库函数生成进程并运行并发子任务。c语言不是并发编程语言,需要使用此方法。并发执行的实现并发执

2021-03-09 12:28:15 192

原创 操作系统 进程管理

操作系统 进程管理进程是什么程序以进程的方式运行,使用系统资源(存储空间,外设,文件,cpu)。进程的组成:一个可以执行的程序;每个进程在被创建的时候分配有自己的用户空间,存放程序和数据;每个进程在执行过程中可能需要访问某些系统资源,包括有(CPU, 内存,IO设备,文件等);进程包含一个栈区,包含运行的现场信息;同一个程序可以由多个进程分别执行,不同的进程之间并没有直接的关系。任何一个程序,逻辑上都可以将其分为两部分:执行过程中不改变自身的不变部分和工作区、变量等可变

2021-03-08 21:01:54 235

原创 数据结构-散列表

数据结构-散列表两个重要的问题:散列函数散列冲突散列函数的选择,使得尽可能少的发生散列冲突;标准的散列关键字是正整数,散列函数可能是整数除以散列表的大小取余;散列表的大小一般是素数,散列分布的更加均匀;如果关键字是字符串的话,散列函数可以是把字符串的所有ascII码加起来;几个散列函数int hashs1(const string & key, int tablesize){ int hashval{0}; for(char x:key){

2021-03-06 11:51:46 1770

原创 c++ NULL 与 nullptr

c++ nullptr 与 NULLnullptr是C++11版本中新加入的, 它的出现是为了解决NULL表示空指针在C++中具有二义性的问题.NULLNULL 在 c 中表示的是空指针;在c++中NULL实际上表示的是0int * pi = NULL;nullptr在c++中NULL实际上表示的是0。因为C++中不能把void*类型的指针隐式转换成其他类型的指针,所以为了结果空指针的表示问题,C++11加入了nullptr,可以保证在任何情况下都代表空指针。建议以后还是都用nullptr替代

2020-11-09 11:48:06 289

原创 c++string

stringstring 的修改方法描述插入str.insert(pos, n,c)在pos之前插入n个字符cstr.insert(pos, s2)在pos之前插入 s2str.insert(pos, s2, pos2, len)在pos之前插入s2从下标pos2开始的len个字符str.insert(pos, cp, len)在pos之前插入cp所指数组的前len个字符删除str.erase(pos, len)删除从下标po开始的

2020-11-09 11:30:00 65

原创 C++数组

C++数组int a[5]{1,2,3,4,5};for (auto i : a){ cout << i << ' ';}int *p = new int[5] {1,2,3,4,5} //malloc 分配在堆上int*p2(new int[5] {1,2,3,4,5})for(int i=0; i<5;i++) cout << p2[i] << endl;c++ 风格的数组array<int, 10>myint1 {1

2020-11-09 11:28:54 89

原创 百度强化学习训练营总结

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...

2020-06-26 13:53:34 378 1

空空如也

空空如也

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

TA关注的人

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