- 博客(31)
- 收藏
- 关注
原创 leetcode算法总结(基于carl网站)
数组二分查找适用情况:在已经排序好的数组中快速找到某一个满足条件的元素。例题:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。思考用哈希会怎么样?在已经排序好的数组下,用哈希耗时更长,若是未排序好的数组可以考虑用哈希。双指针法快慢指针:移除数组元素首尾指针:........................................
2022-03-21 16:01:14 776
原创 2021年计算机能力挑战赛真题总结C++版
asii码操作问题3225.有一组均由字符A~ Z和a~z组成的字符串,其中要求将字符串中各字符按如下要求进行转换A<->z、B<->y、C<->x、… 、X<->c、Y<->b、Z<->a。#include<stdio.h>#include<stdlib.h>#include<string.h>int main(){ char s[10000]; int i;
2021-11-01 11:27:59 13840 19
原创 Linux下C/C++开发之多线程开发
线程概述概念进程与线程的区别进程间难以共享,线程可共享创建进程代价高,线程代价低线程和进程的虚拟地址空间线程之间共享与非共享资源NPTL 有关介绍线程操作函数创建线程—— pthread_create函数一般情况下,main函数所在的线程我们称之为主线程(main线程),其余创建的线程称之为子线程。程序中默认只有一个进程,fork()函数调用,2个进程程序中默认只有一个线程,pthread_create()函数调用,2个线程。 #include <pthr
2021-10-27 18:33:15 785
原创 Effective C++ 中文版(第三版)读书笔记 更新ing~
Effective C++ 中文版(第三版)导读部分条款1 视c++为一个联邦条款2 尽量以const,enum,inline替换#define条款3 尽可能使用const条款4 确定对象使用前已被初始化导读部分类中声明构造函数时,隐式类型转换非必要的时候,最好在构造函数开头加 explict,加了之后也是允许显式类型转换 。class B{ Explict B(int x=0;bool b=ture); };doSomething(B(10)) //发生显式类型转换,B的构造函数将
2021-09-02 00:07:34 623
原创 2022年最新WampServer配置Xdebug(基于Vscode的PHP调试)
Xdebug3.x配置解决.前言Wampserver的Xdebug3.x版本 与 2.x版本 配置方式不一样了,所以目前搜索的配置方法大部分都针对2.x版本所以无效。Wampserver的Xdebug3.x版本配置因为现在下载的都是Xdebug3.X的版本,所以xdebug.remote_port=9000这语句现在已经过期了,但我之前看到别人的教程大概都是2021年左右的的但就一直是xdebug.remote_port=9000,但现在已经改成了xdebug.client_port,并且必须写xd
2022-03-28 19:11:14 1257
原创 史上最详细C++虚继承面试必考总结
参考:http://c.biancheng.net/view/2280.html前言本文参考了网上资料,总结了菱形继承中运用虚继承解决的原因以及虚基类成员可见性的情况菱形继承A 派生出类 B 和类 C,类 D 继承自类 B 和类 C,这个时候类 A 中的成员变量和成员函数继承到类 D 中变成了两份,一份来自 A–>B–>D 这条路径,另一份来自 A–>C–>D 这条路径。在一个派生类中保留间接基类的多份同名成员,虽然可以在不同的成员变量中分别存放不同的数据,但大多
2022-03-06 12:27:28 447
原创 (修改深度学习VOC数据集)Python批量处理xml内容、生成新的xml文件及转移对应图片(附源码)
背景博主在网上找到已经标注好的数据集,想去除掉不想标注的类同时去除没有用的图片文件,方便自己训练。代码注释都写清楚了注意几点最好都写绝对路径,然后路径结尾必须要有\\nameRule是命名用的 具体看代码这些代码可以拓展很多东西,满足自己的处理需求~例如:如果不想转移文件 直接删除文件 用remove函数 具体看其他博客吧~点赞再复制养成好习惯~from lxml import etree import os#初始化global numisMove = False#-----
2022-01-23 14:27:06 1563
原创 dijkstra算法总结C++版
文章目录前言邻阶矩阵邻接矩阵(优先级队列)前言最近遇到求最短距离的题次数有点多,每次写都写不对,故总结一下,仅供学习,大佬轻喷,还没总结完 没时间了,明天弄一下~邻阶矩阵leetcode743原题class Solution {public: int networkDelayTime(vector<vector<int>>& times, int n, int k) { /***************dijkstra***************
2021-12-21 22:55:22 729
原创 史上最全STL常用容器及其底层存储结构总结
各大容器的特点:可以用下标访问的容器有(既可以插入也可以赋值):vector、deque、map;特别要注意一下,vector和deque如果没有预先指定大小,是不能用下标法插入元素的!序列式容器才可以在容器初始化的时候制定大小,关联式容器不行;注意,关联容器的迭代器不支持it+n操作,仅支持it++操作。序列式容器vector当需要使用数组的情况下,可以考虑使用vector特点:(1) 一个动态分配的数组(当数组空间内存不足时,都会执行: 分配新空间-复制元素-释放原空间
2021-10-17 18:17:12 5039
原创 二叉树深度优先遍历,广度优先遍历以及有关算法题总结(一)
二叉树节点定义struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {}};二叉树遍历前中后序遍历 递归版前class Solution {public: void traversal(TreeNode* cur, vector<int>& vec) {
2021-10-17 12:11:11 262
原创 const int * A; int const * A;int * const A;`int const * const A 教你如何理解其含义以及区分
const 位置不同的表示含义const int *A = &B; //const修饰A指向的对象B,A可变,A指向的对象B不可变int const *A = &B; //同上int * const A = &B; //const修饰指针A, A不可变,A指向的对象B可变const int * const A = &B;//指针A和A指向的对象B都不可变int const * const A = &B;同上。简单来说const
2021-10-06 13:55:10 324
原创 Linux C/C++学习之 环境搭建+GCC编译过程+Makefile编写+相关操作函数
环境搭建Ubuntu 18.04 桌面版系统 .iso (sudo apt install gcc g++、 vim)VMware 16(创建虚拟机)VScode (C/C++拓展包、 JSON文件配置)连接UbuntuXshell 7 远程连接UbuntuXftp 7 远程连接Ubuntussh免密配置gcc编译过程命令: 以test.c 为例yang@yang:~/Linux/lession02$ gcc test.c -E -o test.i //-E 生成预处理后
2021-09-24 23:49:20 553
原创 VsCode配置C/C++环境
打开VScode(安装了C/C++的扩展包)ctrl+shift+p 打开搜索栏,输入json,点击配置JSON进入一个c_cpp_properties.json文件夹默认文件内容如下在对应位置处添加代码我是安装的VS2015 。库文件在 "xxxx/VC/include” 下,以及“xxxx/ucrt/” 下 。(xxxx表示你的vs2015编译器根目录) "D:/wps download/VISUAL STUDIO/VC/include/", "c:/Program File
2021-09-24 21:58:23 6848
原创 Ubuntu 系统全世界镜像下载地址 (全)
里面包含Ubuntu全世界镜像下载地址,下拉找到“China” 即可快速下载对应系统的iso文件!Ubuntu全世界镜像下载地址:全世界Ubuntu镜像链接.速度最快的是China列表开头两个,进去之后按版本号查找对应的.iso文件下载,注意区分Sever版还是桌面版。...
2021-09-24 14:02:02 2836
原创 CMake学习编写CMakeList.txt的案例
CMake使用笔记 案例1:hello word 编写 同一目录,一个源文件CMakeList.txt 编写 (存放在与main.c同样的目录中)Cmake编译案例2 同一目录,多个源文件案例1:hello word 编写 同一目录,一个源文件//main.c 当前文件命名#include <stdio.h>int main(){ printf("hello CMake!\n"); return 0;}CMakeList.txt 编写 (存放在与main.c同样的目录
2021-09-24 00:02:32 127
原创 CJSON 开发笔记
CJSON开发学习笔记`__FILE__`与`__LINE__` 的用途__FILE__与__LINE__ 的用途方便在大型项目中找出错误。 fprintf(stderr, "%s:%d: expect: " format " actual: " format "\n", __FILE__, __LINE__, expect, actual); //File中文意思即文件,这里的意思主要是指: //正在编译文件对应正在编译文件的路径和文件的名称。 //LINE 显示出错的行号...
2021-09-14 22:48:11 267
原创 邓俊辉 数据结构与算法C++版 第一章 绪论
第一章 绪论复杂度分析复杂度分析的主要方法级数大师定理动态规划递推方程封底估算(Φ^n^)迭代最长公共子序列——LCS递归策略自底而上求解LCS长度复杂度分析复杂度分析的主要方法迭代:级数求和递归跟踪+递推方程猜测和验证时间复杂度讲解link级数大师定理动态规划递推方程该累加算法的递推过程例题:直接用定义以递归的方式计算fib(n)的时间复杂度是:2n封底估算(Φn)迭代最长公共子序列——LCS该部分主要集中在如何计算最长公共子序列的长度递归策略分而治
2021-09-13 23:00:53 174
原创 邓俊辉 数据结构与算法C++版 第十四章排序
邓公数据结构与算法 第十四章排序快速排序算法分而治之轴点构造轴点不变性与单调性快排性能分析最好情况与最坏情况平均情况二级目录三级目录快速排序算法分而治之轴点构造轴点定义两个端点,不断向中间交替移动,U中元素比对后加入L或G中。不变性与单调性单调性:左右两端序列逐渐增加,中间序列逐渐减小不变性:中间序列始终存在空缺(除了最后一步)快排性能分析最好情况与最坏情况上图的时间分析公式如下。平均情况推导过程.二级目录三级目录...
2021-09-06 22:59:20 239
原创 邓俊辉 数据结构与算法C++版 第十三章 串 ADT
邓公数据结构与算法 第十三章 串ADT定义和特点术语ADT接口实现模式匹配问题与需求算法测试方法蛮力匹配构思蛮力匹配:版本1蛮力匹配:版本2蛮力匹配:性能分析KMP算法查询表理解next【】表构造next【】表next【】表代码实现KMP复杂度准确分析 ——线性时间O(n)KMP算法改进版ADT定义和特点特点:串长远远大于字符种类术语ADT接口实现模式匹配问题与需求主要解决4个问题。算法测试方法成功与失败的情况分开来测试。蛮力匹配构思自左向右,以字符为单位,依次移动模式
2021-09-03 23:30:03 440
原创 快排算法实现
#include<iostream>#include<vector>using namespace std;void quicksort(vector<int> &v,int low,int hight){ if (low >= hight) { return; } int i = low; int j = hight; int index = v[i]; while (i < j) { while(i<j&.
2021-08-27 11:45:00 99
原创 什么是出度入度?
1. 什么是出度与入度?在有向图中,箭头是具有方向的,从一个顶点指向另一个顶点,这样一来,每个顶点被指向的箭头个数,就是它的入度。从这个顶点指出去的箭头个数,就是它的出度2. 怎样计算一个顶点的入度与出度邻接矩阵的行号即代表箭头的出发结点,列号是箭头的指向结点,所以矩阵中同一行为1的表示有从第i个结点指向第j个结点这样一条边,而在同列为1就代表第j个结点被第i个结点指向,因此要求顶点的出度与入度,只需要判断同列为1的个数,同行为1的个数...
2021-08-27 02:12:23 27034
原创 邓公数据结构与算法中的冒泡排序的循环理解
#include<iostream>using namespace std;void bubblesort(int a[],int n){ for (bool sorted = false; sorted = !sorted; n--)//至多n趟扫描 { for (int i = 0; i < n; i++)//每趟扫描自左至右逐对检查 { if (a[i] < a[i - 1]) { swap(a[i], a[i - 1]); s.
2021-08-11 12:12:57 234
原创 为什么类中拷贝函数要传入引用?
以一段深拷贝与浅拷贝相关代码来讲述①假设类中构造函数为 Person(const Person p) main函数中 Person p3(p2)相当于 Person p3 = p2,运行之后调用了 拷贝函数 Person(const Person p),那么进行参数传入就有 Person p=p2 ,可以发现与开始说的 “Person p3=p2”形式一样。那么Person p=p2 又调用了一次拷贝函数,那么 调用拷贝结果后又是Person p =p2,然后继续拷贝,进入无限死...
2021-07-05 21:45:16 131
原创 (int*)&p、void(*p)()、(*p)()都是什么意思?
①(int*)&p 表示 将p指针的地址,即&p,强制转换为指向int类型数据的指针②void(*p)() 表示定义一个指针变量p,这个指针指向的一个函数,这个函数的参数和返回值都是void③(*p)() 表示对这个指针变量p指向的函数的调用...
2021-07-05 21:30:20 3650
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人