Cpp Learning Road
文章平均质量分 64
记录一个热爱编程的小白,对有趣的C/C++ 技术的探索之路~
yyjshang
目前研三,曾在欢聚(Joyy)后端实习,热爱分享技术所见所得,实时分享面试笔试必备知识点及心得体会。
展开
-
Xshell连接Ubuntu
xshell配置原创 2022-12-08 14:36:43 · 227 阅读 · 0 评论 -
leetcode算法总结(基于carl网站)
数组二分查找适用情况:在已经排序好的数组中快速找到某一个满足条件的元素。例题:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。思考用哈希会怎么样?在已经排序好的数组下,用哈希耗时更长,若是未排序好的数组可以考虑用哈希。双指针法快慢指针:移除数组元素首尾指针:........................................原创 2022-03-21 16:01:14 · 721 阅读 · 0 评论 -
2022蓝桥杯C++刷题记录
备赛自用总结,欢迎交流,赛前持续更新原创 2022-03-20 11:39:56 · 1378 阅读 · 3 评论 -
史上最详细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 · 400 阅读 · 0 评论 -
Linux下C++开发之Web server实战
记录自己开发服务器基础知识以及过程问题等原创 2022-03-04 17:37:18 · 729 阅读 · 0 评论 -
dijkstra算法总结C++版
文章目录前言邻阶矩阵邻接矩阵(优先级队列)前言最近遇到求最短距离的题次数有点多,每次写都写不对,故总结一下,仅供学习,大佬轻喷,还没总结完 没时间了,明天弄一下~邻阶矩阵leetcode743原题class Solution {public: int networkDelayTime(vector<vector<int>>& times, int n, int k) { /***************dijkstra***************原创 2021-12-21 22:55:22 · 657 阅读 · 0 评论 -
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 · 12509 阅读 · 19 评论 -
Linux下C/C++开发之多线程开发
线程概述概念进程与线程的区别进程间难以共享,线程可共享创建进程代价高,线程代价低线程和进程的虚拟地址空间线程之间共享与非共享资源NPTL 有关介绍线程操作函数创建线程—— pthread_create函数一般情况下,main函数所在的线程我们称之为主线程(main线程),其余创建的线程称之为子线程。程序中默认只有一个进程,fork()函数调用,2个进程程序中默认只有一个线程,pthread_create()函数调用,2个线程。 #include <pthr原创 2021-10-27 18:33:15 · 752 阅读 · 0 评论 -
史上最全STL常用容器及其底层存储结构总结
各大容器的特点:可以用下标访问的容器有(既可以插入也可以赋值):vector、deque、map;特别要注意一下,vector和deque如果没有预先指定大小,是不能用下标法插入元素的!序列式容器才可以在容器初始化的时候制定大小,关联式容器不行;注意,关联容器的迭代器不支持it+n操作,仅支持it++操作。序列式容器vector当需要使用数组的情况下,可以考虑使用vector特点:(1) 一个动态分配的数组(当数组空间内存不足时,都会执行: 分配新空间-复制元素-释放原空间原创 2021-10-17 18:17:12 · 4428 阅读 · 0 评论 -
二叉树深度优先遍历,广度优先遍历以及有关算法题总结(一)
二叉树节点定义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 · 218 阅读 · 0 评论 -
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 · 292 阅读 · 0 评论 -
Linux C/C++学习之多进程开发
进程概述原创 2021-09-29 23:34:55 · 903 阅读 · 0 评论 -
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 · 531 阅读 · 0 评论 -
Ubuntu 系统全世界镜像下载地址 (全)
里面包含Ubuntu全世界镜像下载地址,下拉找到“China” 即可快速下载对应系统的iso文件!Ubuntu全世界镜像下载地址:全世界Ubuntu镜像链接.速度最快的是China列表开头两个,进去之后按版本号查找对应的.iso文件下载,注意区分Sever版还是桌面版。...原创 2021-09-24 14:02:02 · 2747 阅读 · 0 评论 -
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 · 114 阅读 · 0 评论 -
邓俊辉 数据结构与算法C++版 第十四章排序
邓公数据结构与算法 第十四章排序快速排序算法分而治之轴点构造轴点不变性与单调性快排性能分析最好情况与最坏情况平均情况二级目录三级目录快速排序算法分而治之轴点构造轴点定义两个端点,不断向中间交替移动,U中元素比对后加入L或G中。不变性与单调性单调性:左右两端序列逐渐增加,中间序列逐渐减小不变性:中间序列始终存在空缺(除了最后一步)快排性能分析最好情况与最坏情况上图的时间分析公式如下。平均情况推导过程.二级目录三级目录...原创 2021-09-06 22:59:20 · 219 阅读 · 0 评论 -
邓俊辉 数据结构与算法C++版 第十三章 串 ADT
邓公数据结构与算法 第十三章 串ADT定义和特点术语ADT接口实现模式匹配问题与需求算法测试方法蛮力匹配构思蛮力匹配:版本1蛮力匹配:版本2蛮力匹配:性能分析KMP算法查询表理解next【】表构造next【】表next【】表代码实现KMP复杂度准确分析 ——线性时间O(n)KMP算法改进版ADT定义和特点特点:串长远远大于字符种类术语ADT接口实现模式匹配问题与需求主要解决4个问题。算法测试方法成功与失败的情况分开来测试。蛮力匹配构思自左向右,以字符为单位,依次移动模式原创 2021-09-03 23:30:03 · 410 阅读 · 0 评论 -
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 · 582 阅读 · 0 评论 -
AVL树的旋转操作
转载 2021-08-29 18:35:26 · 60 阅读 · 0 评论 -
快排算法实现
#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 · 84 阅读 · 0 评论 -
什么是出度入度?
1. 什么是出度与入度?在有向图中,箭头是具有方向的,从一个顶点指向另一个顶点,这样一来,每个顶点被指向的箭头个数,就是它的入度。从这个顶点指出去的箭头个数,就是它的出度2. 怎样计算一个顶点的入度与出度邻接矩阵的行号即代表箭头的出发结点,列号是箭头的指向结点,所以矩阵中同一行为1的表示有从第i个结点指向第j个结点这样一条边,而在同列为1就代表第j个结点被第i个结点指向,因此要求顶点的出度与入度,只需要判断同列为1的个数,同行为1的个数...原创 2021-08-27 02:12:23 · 26079 阅读 · 0 评论 -
邓公数据结构与算法中的冒泡排序的循环理解
#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 · 211 阅读 · 0 评论 -
为什么类中拷贝函数要传入引用?
以一段深拷贝与浅拷贝相关代码来讲述①假设类中构造函数为 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 · 111 阅读 · 0 评论 -
(int*)&p、void(*p)()、(*p)()都是什么意思?
①(int*)&p 表示 将p指针的地址,即&p,强制转换为指向int类型数据的指针②void(*p)() 表示定义一个指针变量p,这个指针指向的一个函数,这个函数的参数和返回值都是void③(*p)() 表示对这个指针变量p指向的函数的调用...原创 2021-07-05 21:30:20 · 3541 阅读 · 0 评论