avatar
文章
33
标签
8
分类
10

首页
IT分类
  • 代码刷题
  • 面试过往
  • 开发杂记
  • 好用Trick
游戏
  • 游戏开发
  • 游戏评价
AI
  • AI论文阅读记录
个人
  • 有趣轶事
  • 感悟记录
分类
标签
留言板
关于
AiXueK's Site
搜索
首页
IT分类
  • 代码刷题
  • 面试过往
  • 开发杂记
  • 好用Trick
游戏
  • 游戏开发
  • 游戏评价
AI
  • AI论文阅读记录
个人
  • 有趣轶事
  • 感悟记录
分类
标签
留言板
关于

AiXueK's Site

DFS和BFS
发表于2024-08-12|IT分类代码刷题
特征 DFS BFS 数据结构 stack queue 储存空间 只用储存一条路的数值,所以跟高度或者路的长度有关 O(h),使用空间较少 每次储存一层的数值,所以是指数增长 O(2^h),使用空间较多 常用场景 不具有最短性 因为是一层一层地搜索,所以可以最快搜索到最短路径(特别是权重为1的时候) 深度优先搜索 DFS一条路一直搜索下去,然后后退。 题目例子:排列数字 给一个数n,将1~n排成一排,按字典顺序输出所有的排列方法。 12345678Input: 3Output:1 2 31 3 22 1 32 3 13 1 23 2 1 DFS代码:123456789101112131415161718192021222324252627282930313233343536373839#include <iostream>#include <vector>using namespace std;const int N = 10;int n;int path[N];bool used[N];void dfs(int level)&# ...
C++面试准备
发表于2024-08-09|IT分类代码刷题
这里是自己搜罗准备的C++面试八股文常用题目,持续更新。 Static关键字作用 基本概念 静态数据成员 静态成员函数 Extern关键字作用 指针和引用 动态库和静态库的区别 虚函数和纯虚函数的区别 虚函数 纯虚函数 友元的应用 友元函数 友元类 BFS与DFS的实现 BFS Bread-First Search 广度优先搜索 DFS STL常用容器和算法 List和Set 红黑树 二叉搜索数 HashMap的原理 堆和栈的区别 如何解决死锁 Static关键字作用基本概念 使用目的: 在 C++ 中,需要一个数据对象为整个类而非某个对象服务,同时又力求不破坏类的封装性,即要求此成员隐藏在类的内部,对外不可见时,可将其定义为静态数据。 存放位置 DATA 段(全局初始化区)存放初始化的全局变量和静态变量;BSS 段(全局未初始化区)存放未初始化的全局变量和静态变量。其中BBS段在程序执行之前会被系统自动清0,所以未初始化的全局变量和静态变量在程序执行之前已经为0。存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。 使用 ...
C++常用设计模式
发表于2024-08-03|IT分类开发杂记
工厂模式(Factory)简单工厂只有一个工厂,即一个类负责创建不同类的实例。通常使用static静态方法来创建对象,不需要传递工厂类来创建实例。 优点: 单一工厂类,实现简单 缺点: 扩展性差,添加新类,新产品时,需要修改工厂类代码 代码实现:123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051#include <iostream>using namespace std;class Car{public: virtual void drive() = 0; // 创建纯虚函数,让每个子类实现 virtual ~Car() {} // 析构虚函数,保证子类析构时能正确调用子类析构函数};class BydCar : public Car{public: void drive() override { cout << " ...
SFML C++ 项目
发表于2024-08-02|IT分类游戏开发
项目简介 项目Setup 项目代码 项目简介这是一个跟着COMP4300的课程记录制作的项目,因不公开提供代码资料,所以我自己整理了一份方便其他人使用,放在网页上的代码和文档都test过,请放心使用。 这个项目利用SFML来制作一个含有各种图形四处悬动的窗口,示例如下: 要求从config.txt文件中读取窗口大小,生成要求的图形(positionX, positionY, speedX, speedY, r, g, b, (height, width) or radius),图形需要根据自身的速度在窗口中移动,当碰到边框时进行反弹(速度变成相反的),图形需要在正中间显示图形名字:12345678Window 1280 720Font fonts/KillerTech.ttf 36 128 128 255Circle CGreen 100 100 -3 2 0 255 0 50Circle CBlue 200 200 2 4 0 0 255 100Circle CPurple 300 300 -2 -1 255 0 255 75Rectangle RRed 200 200 4 4 ...
函数指针
发表于2024-07-27|IT分类开发杂记
函数指针是指向函数的指针,跟指向变量的指针没差。 函数的一个属性就是其地址指明了函数体在内存中的位置,在调用函数时,系统将控制权给这个位置来执行函数。 用一个函数来举例 1234double f(double x){ return 2*x;} 这里,f是指向函数f()的指针,*f()是函数本身, (*f)(7)是调用这个函数并取得值,其本质跟f(7)没有任何差别,只是在大多数编程语言中(包括 C 和 C++),编译器会自动理解f是一个函数指针并进行适当的解引用。 函数指针一般在需要函数作为一个变量的时候起到作用,即函数作为参数传递,如当要求n到m之间用函数f的总和时:12345678double sum(double (*f)(double), int n, int m){ double result = 0; for (int i = n; i <= m ; ++i) result += f(i); return result} 这里,double (*f)(double)是指f为指向一个返回 ...
指针vs引用
发表于2024-07-25|IT分类开发杂记
指针: 指向值,但本身值为地址。 可以有null pointer,指向特殊地址0 初始化后可以被改变 引用: 相当于const指针,int& r = n等同于int *const r = &n 因为是int *const所以初始化之后,r本身的值不能改变,也就是不能改变它指向的地址了 关于int *const r: 表示一个常量指针,指向一个整数。 指针是常量:一旦初始化,指针本身的值(即它指向的地址)不能改变。 指向的数据是可变的:可以通过这个指针修改它指向的整数的值。 123456int value1 = 10;int value2 = 20;int *const ptr = &value1; // 常量指针,指向 value1,可以将const后面的(ptr)单独看,它是指针本身,所以是指针本身不能变,也就是ptr所储存的地址不能变*ptr = 15; // 这是可以的,因为可以修改指针指向的数据,所以也可以更改被引用的变量的值// ptr = &value2; // 报错,因为不能修改指针本身的值 相应的有const int *: ...
复制构造函数
发表于2024-07-25|IT分类开发杂记
复制构造函数的用途就是解决:当将数据从一个对象复制到另一个对象时,其中的指针数据成员没有被正确处理的情况。 如:12345678910struct Node{ char *name; int age; Node(char *n=" ", int a = 0) { name = strdup(n); // strdup是用来分配一个新的内存并返回该指向该字符串的指针 age = a; }} 当这样带char *name指针的对象,经历复制时,会遇到以下问题 12345678Node node1("node1", 10); // Create object node1Node node2(node1); // Create a node1 copy named node, 同样可写为: Node node2 = node1;strcpy(node2.name, "changedName"); // 将node2的name改为" ...
双指针算法
发表于2024-07-07|IT分类代码刷题
双指针算法主要思想: 帮助优化双循环算法,原本算法为O(n^2): 12for (int i = 0; i < n; ++i) for (int j = 0; j < n; ++j) 可以将算法优化为O(n),此时双指针就像弹簧一样,i在前面扯着j往前移动,然后check它们中间那一段是否合格: 12for (int i = 0, j = 0; i < n; ++i) while (j < i && check(i, j)) j++; 基础题给一个字符串,单词用空格隔开,输出每个单词 12345678910111213141516171819202122232425#include <iostream>#include <string>using namespace std;int main(){ string input; getline(cin, input); for (int i = 0; input[i]; i++) { // mark the ...
经典笔试刷题集合
发表于2024-07-06|IT分类代码刷题
牛客 HJ17 坐标移动(中等)开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。 输入: 合法坐标为A(或者D或者W或者S) + 数字(两位以内),坐标之间以;分隔。(如:A10;S20;W10;D30;X;A1A;B10A11;;A10;) 非法坐标点需要进行丢弃。如AA10; A1A; $%$; YAD; 等。 起点(0,0),A10 = (-10,0),S20 = (-10,-20) 数据范围:1 <= n <= 10000 1
有趣轶事
发表于2024-06-29
有趣轶事参加SIG event day的搞笑事情
1234
avatar
AiXue K
文章
33
标签
8
分类
10
Follow Me
公告
This is my Blog
最新文章
WindowsSystem 问题解决分享2026-01-03
UE Modeling 建模记录2025-11-16
UE Enhanced Inputs2025-04-07
离线本地Unreal Engine文档2025-04-02
UE Niagara特效记录2025-03-23
分类
  • IT分类22
    • tricks分享1
    • 代码刷题7
    • 开发杂记6
    • 游戏开发6
    • 面试过往2
  • 个人1
    • 有趣轶事1
标签
Tricks Game Dev Algorithm 搞笑 Code TA C++ Interview
归档
  • 一月 20261
  • 十一月 20251
  • 四月 20252
  • 三月 20252
  • 十一月 20243
  • 十月 20241
  • 八月 20244
  • 七月 20245
网站资讯
文章数目 :
33
本站访客数 :
本站总访问量 :
最后更新时间 :
©2020 - 2026 By AiXue K
框架 Hexo|主题 Butterfly
搜索
数据库加载中