自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 回调函数(callback functions)的理解和使用

回调函数就是一个被作为参数传递的函数。在C语言中,回调函数只能使用函数指针实现,在C++、Python等更现代的编程语言中还可以使用仿函数或匿名函数实现。回调函数的使用可以大大提升编程的效率,这使得它在现代编程中被非常多地使用。同时,有一些需求必须要使用回调函数来实现。最著名的回调函数调用有C/C++标准库/cstdlib中的快速排序函数和函数中都会要求的一个与类似的参数,用于设置数据的。

2023-10-05 16:09:38 2960

原创 【c++】STL里的priority_queue用法总结

既然是队列那么先要包含头文件#include <queue>, 他和queue不同的就在于我们可以自定义其中数据的优先级, 让优先级高的排在队列前面,优先出队优先队列具有队列的所有特性,包括基本操作,只是在这基础上添加了内部的一个排序,它本质是一个堆实现的 和队列基本操作相同: top 访问队头元素 empty 队列是否为空 size 返回队列内元素个数 push 插入元素到队尾 (并排序) empl...

2022-03-16 21:16:37 296

原创 string函数中的push_back()、append()、+=

增加字符(这里说的增加是在尾巴上),函数有 +=、append()、push_back()。举例如下:s+=str;//加个字符串s+=”my name is jiayp”;//加个C字符串s+='a';//加个字符s.append(str);s.append(str,1,3);s.append(str,2,string::npos)s.append(“my name is **”);s.append(“nico”,5);s.append(5,'x');s.push_back(‘a'

2022-03-15 21:47:04 2054

原创 关于栈和队列

栈和队列是STL(C++标准库)里面的两个数据结构。C++标准库是有多个版本的,要知道我们使用的STL是哪个版本,才能知道对应的栈和队列的实现原理。三个最为普遍的STL版本: HP STL 。其他版本的C++ STL,一般是以HP STL为蓝本实现出来的,HP STL是C++ STL的第一个实现版本,而且开放源代码。 P.J.Plauger STL 由P.J.Plauger参照HP STL实现出来的,被Visual C++编译器所采用,不是开源的。 SGI STL 由Silic

2022-03-15 11:02:20 272

原创 刷题总结——数据结构基础

2022/3/61.leetcode136只出现一次的数字。位运算。注意异或运算三个性质。异或运算有以下三个性质。 任何数和 000 做异或运算,结果仍然是原来的数,即 a⊕0=a。 任何数和其自身做异或运算,结果是 000,即 a⊕a=0。 异或运算满足交换律和结合律,即 a⊕b⊕a=b⊕a⊕a=b⊕(a⊕a)=b⊕0=b。2.leetcode169多数元素。注意排序法。...

2022-03-06 21:31:54 444

原创 leetcode刷题——哈希表

1.leetcode242有效的字母异2.leetcode383赎金信。方法与上题相同。哈希计数。

2022-03-02 21:59:17 350

原创 leetcode刷题——链表

1.leetcode203移除链表元素(简单)题目连接:https://leetcode-cn.com/problems/remove-linked-list-elements/submissions/解法:设置虚拟头节点class Solution {public:ListNode* removeElements(ListNode* head, int val) {ListNode* virtualhead = new ListNode();virtualhead->next =

2022-02-25 20:23:58 420

原创 操作系统——bilibili王道考研操作系统课程笔记

知识总览1.1.1操作系统的概念(定义)计算机系统的层次结构:逻辑(纯硬件)->操作系统->应用程序-》用户。操作系统:1.负责管理协调硬件、软件等计算机资源的工作。2.为上层的应用程序、用户 提供简单易用的服务。3.操作系统是系统软件,而不是硬件。...

2022-02-24 21:22:03 3438 4

原创 lower_bound与upper_bound

@lower_bound与upper_boundlower_bound( )和upper_bound( )都是利用二分查找的方法在一个排好序的数组中进行查找的。在从小到大的排序数组中,lower_bound( begin,end,num):从数组的begin位置到end-1位置二分查找第一个大于或等于num的数字,找到返回该数字的地址,不存在则返回end。通过返回的地址减去起始地址begin,得到找到数字在数组中的下标。upper_bound( begin,end,num):从数组的begin位置到

2022-02-20 16:02:56 8457

原创 leetcode刷题——数组

一、二分法1.leetcode704(简单)题目链接:https://leetcode-cn.com/problems/binary-search/解题思路:题目已知条件是有序,所以考虑二分查找。

2022-02-19 17:47:42 8198 1

原创 关于排序算法

一、简单算法(一)冒泡排序二、改进算法

2021-12-11 22:01:33 450

原创 2021.10笔记

一、10.111.先序+中序遍历算后序遍历以及中序+后续遍历算先序遍历程序。2.PTA03-树3 Tree Traversals Again,其中出错原因:s1是字符串,ELement是int型。应该改成下图这个样子,不能直接push。...

2021-10-11 19:12:08 123

转载 C++实现已知二叉树中序遍历和前序/后续遍历,求后续/前序遍历

一、基本概念1.先序遍历(NLR)可以确定二叉树的父子结点;2.中序遍历(LNR)可以确定二叉树的左右子树;3.后序遍历(LRN)可以确定二叉树的父子结点;二、结论1.已知先序遍历,中序遍历序列,能够创建出一棵唯一的二叉树,可以得出二叉树的后序遍历;2.已知后序遍历,中序遍历序列,能够创建出一棵唯一的二叉树,进而可以得出二叉树的先序序列;三、C++代码实现1.已知先序遍历和中序遍历,打印后序遍历(见函数void postorder(string preorder, strin

2021-10-11 09:57:39 1479

原创 数据结构与算法第一阶段

1.1.1斐波那契数#include <iostream>using namespace std;int fib1(int n){ if (n <= 1) return n; return fib1(n - 1) + fib1(n - 2);}int fib2(int n){ if (n <= 1) return n; int first = 0; int second = 1; for (int i = 0; i < n - 1; i++)

2021-09-08 22:33:58 118

原创 Python基础

1.for循环range():range(1,10) 表示范围 [1,10)range(1,10,5)第三个参数表示步长2.if elif else3.def函数

2021-09-06 22:30:33 89

转载 遍历字符串的三种方式:(注意新式for循环)

就以:把字符串“1234”转换为整形1234,为例来说明遍历字符串的三种方式:①常规方式(下标+operator[]) #include <iostream> #include <string> #include <vector> #include <list> using namespace std; int StrToInt1(string str) { int va...

2021-09-05 10:42:12 9382

转载 STL函数——unique函数

一、函数定义unique函数属于STL中比较常用函数,它的功能是元素去重。即”删除”序列中所有相邻的重复元素(只保留一个)。此处的删除,并不是真的删除,而是指重复元素的位置被不重复的元素给占领了(详细情况,下面会讲)。由于它”删除”的是相邻的重复元素,所以在使用unique函数之前,一般都会将目标序列进行排序。二.函数原型unique函数的函数原型如下:1.只有两个参数,且参数类型都是迭代器: 1 iterator unique(iterator it_1,i

2021-09-03 21:54:58 2412

原创 一、数组部分——二分查找

leetcode题目:704. 二分查找(简单)给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-search解答:法一(二分查找法):class Solution {public: int search(vector<int>.

2021-08-31 21:05:59 421

原创 基于STL的演讲比赛流程管理系统(C++STL实战)

1.演讲比赛程序需求1.1比赛规则学校举行一场演讲比赛,共有12人参加。比赛共两轮,第一轮为淘汰赛,第二轮为决赛 每名选手都有对应的编号,如10001~10012 比赛方式:分组比赛,每组6个人 第一轮分为两个小组,整体按选手编号进行抽签后顺序演讲 是个评委分别给每名选手打分,去除最高分和最低分,求的平均分为本轮选手成绩 当小组演讲完后,淘汰组内排名最后的三个选手,前三名晋级,进入下一轮的比赛 第二轮为决赛,前三名胜出 每轮比赛过后需要显示出晋级选手的信息1.2程序功能开始演讲比

2021-08-29 21:48:23 1215 2

原创 C++提高编程(泛型编程与STL技术)

1.模板1.1模板的概念模板就是建立通用的模具,大大提高编程的复用性1.2函数模板C++编程思想主要有面向对象和泛型编程,泛型编程主要利用的技术就是模板 C++提供两种模板机制,函数模板和类模板1.2.1函数模板语法函数模板作用:建立一个通用函数,其函数返回值类型和形参类型可以不具体制定,用一个虚拟的类型来代表。语法:template<typename T>解释:template——声明创建模板typename——表明其后面的符号是一种数据类型,

2021-08-21 22:07:50 542 1

原创 职工管理系统(C++)(C++类项目实战)

1.管理系统需求职工管理系统可以用来管理公司内所有员工的信息公司中职工分为三类:普通员工、经理、老板,显示信息时需要显示职工编号、职工岗位、以及职责。普通员工职责:完成经理交给的任务。经理职责:完成老板交给的任务,并下发任务给员工。老板职责:管理公司所有事务管理系统需要实现的功能如下:退出管理程序:退出当前管理系统 增加职工信息:实现批量添加职工功能,将信息录入到文件中,职工信息为:职工编号、姓名、部门编号 显示职工信息:显示公司内部所有职工的信息 删除离职职工:按照编

2021-08-19 17:48:07 617

原创 error C4996: This function or variable may be unsafe.

一:在程序最前面加#define _CRT_SECURE_NO_DEPRECATE;二:在程序最前面加#define _CRT_SECURE_NO_WARNINGS;三:在程序最前面加#pragma warning(disable:4996);四:把scanf、scanf改为scanf_s、fopen_s,具体方法请百度; //不建议使用这个五:无需在程序最前面加那行代码,只需在新建项目时取消勾选“SDL检查”即可;六:若项目已建立好,在项目属性里关闭SDL也行;七:在工程项目设置一

2021-08-13 13:42:00 692

原创 遗忘随记/

1.std::strncpy(color, c, 39); //strncpy用于指定长度的字符串赋值到字符数组中

2021-08-13 11:39:42 84

原创 (C++Primer Plus)第十二章 类和动态内存分配笔记

12.1动态内存和类12.1.1一些分析#include <iostream>#ifndef STRNGBAD_H_#define STRNGBAD_H_class StringBad{private: char* str; int len; static int num_strings;public: StringBad(const char* s); StringBad(); ~StringBad(); frien...

2021-08-09 19:17:19 306

原创 重载<<无法访问私有成员

写习题的时候重载<<出现了无法访问私有成员的错误解决方法,头文件里加上#include <iostream>

2021-07-31 15:54:56 147

原创 函数和结构

目录1.值传递和返回结构2.地址传递结构3.按引用传递结构1.值传递和返回结构当结构比较小时,选择值传递。#include <iostream>using namespace std;const int Min_per_hr = 60;struct travel_time{ int hours; int mins;};travel_time sum(travel_time t1, travel_time t2);void show_time(t..

2021-07-10 22:08:04 95

原创 C++中cin、cin.get()、cin.getline()等函数用法详解

1.cin>>1.1cin>>用法1:最基本,也是最常用的用法,输入一个数字:#include <iostream>using namespace std;main (){int a,b;cin>>a>>b;cout<<a+b<<endl;}输入:2[Enter]3[Enter]输出:5注意:>> 是会过滤掉不可见字符(如 空格 回车,TAB 等)1.2cin...

2021-07-10 15:17:52 12945

原创 c++ Primer Plus笔记

1.使用原始的cin进行输入cin在读取时,将忽略空格和换行符。只有在用户按下回车键后,输入的内容才会被发送给程序。2.使用cin.get(char)进行补救

2021-07-10 13:23:30 662

原创 windows10 vs2019 cl不是内部或外部命令,也不是可运行程序解决方法:

第一步:看看你的​VisualStudio\VC\Auxiliary\Build\vcvars32.bat​在哪里,我的在D盘。第二步:win+R,+cmd打开命令提示符,切换到第一步找到的盘符,如图所示,“盘符:”。第三步:输入cl.大功告成!...

2021-07-07 21:29:44 2474

原创 C++核心编程

C++核心编程

2021-07-07 15:07:04 512 1

原创 C++primer plus编程练习参考答案

第2章 开始学习C++-1编写一个C++程序,:它显示您的姓名和地址。2.编写学个C+程序,它要求用广输入一个以long-为单位的距离,然后将它转换为码(一-long 等手:220码)。3.编写一个C行程序,它使用3个用户定义的函数~(包括maini()>,并生成下面的输出”Three-biind ,micerrhree blind:miceseerhow they . run ..seehow. they run其p:个函数要调用两次,.该函数生成前两行,另=个函数也被调用两次,并生成其

2021-06-13 22:19:35 24912 9

原创 C++基础知识实战——通讯录管理系统

1.系统需求系统需要实现的功能如下:添加联系人:向通讯录中添加新人,信息包括(姓名、性别、联系电话、家庭住址)最多记录1000人

2021-06-12 21:26:57 762 2

原创 C++学习笔记(6.7 ——6.11)——c++基础入门

1、第一个c++程序#include <iostream>using namespace std;int main(){ cout << "hello world" << endl; system("pause"); return 0;}

2021-06-12 18:37:58 390

原创 数据结构——List Leaves(题目来源于数据结构(浙江大学)题集)

题目: List LeavesGiven a tree, you are supposed to list all the leaves in the order of top down, and left to right.题目分析:大致意思是输入一棵树,输出为从上到下从左到右输出树中的叶子节点。经过验证题中示例,确实没理解错。思路:1.建树返回根节点以便索引; 2.寻找叶节点数组; 3.打印叶节点数组。...

2021-05-09 22:53:11 228

原创 数据结构——树的同构问题(题目来源于数据结构(浙江大学)题集)

03-树1 树的同构 (25 分)给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。![](~/28)图1图2现给定两棵树,请你判断它们是否是同构的。输入格式:输入给出2棵二叉树树的信息。对于每棵树,首先在一行中给出一个非负整数N (≤10),即该树的结点数(此时假设结点从0到N−1编号);随后N行,第i行对

2021-05-06 21:46:00 668 2

原创 关于scanf、fopen等报错的解决方法

'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.解决方法有两种:一、在代码开头加入这个#define _CRT_SECURE_NO_WARNINGS 二、解决办法是在 项目 =》属性 =》c/c++ =》预处理器...

2021-04-08 13:22:32 279

原创 《CPrimer Plus (第6版)》各章节编程练习答案汇总(更新中)

第四章:https://blog.youkuaiyun.com/margaret522/article/details/108016709

2021-04-05 20:50:25 2783

原创 c语言实现“弹跳的小球”

利用printf函数,非常简单。主要是想明白小球动态效果的呈现是通过改变小球的坐标变量以及每次显示小球前使用清屏函数system(“cls”)来实现。设计思路:1、显示一个静态的小球。(小球用字母‘o’表示即可)。2、在1的基础上让小球能够下落。(通过小球的x坐标以及每次显示前运用清屏函数来实现)。3.实现上下弹跳以及,当到达上界或者下界的时候改变方向。4、左右或斜着弹跳。5、加边框,碰壁后报警等。(实现完上述功能后思考将这些修饰功能融入进去)。#include <std

2021-03-26 14:44:10 4352

原创 函数、指针和数组的一些总结(c语言)

一、一维数组函数声明、函数定义和函数调用形式总结1、函数声明a.一般形式。(由于函数原型可以省略数组名,以下四种一维数组的函数原型等价。)(1)int sum(int *ar,int n);(2)int sum(int *,int );(3)int sum(int ar[],int n);(4)int sum(int [],int );b.变长数组为参数的方式。(务必是元素个数在前,数组名在后)(1)int sum(int n,int *ar);(2)int sum.

2021-03-12 22:39:42 406 1

原创 C Primer Plus 第六版 第十章 编程练习参考答案

1.修改程序清单10.7的rain.c程序,用指针进行计算(仍然要声明并初始化数组)。#include <stdio.h>#define MONTHS 12#define YEARS 5//a[2][1] = *(*(a+2)+1)int main(void){ const float rain[YEARS][MONTHS] = { {4.3,4.3,4.3,3.0,2.0,1.2,0.2,0.2,0.4,2.4,3.5,6.6}, {8.5,8.2,1.2,1.6,2.4

2021-03-11 22:32:25 677

空空如也

空空如也

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

TA关注的人

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