- 博客(8)
- 收藏
- 关注
原创 C#的ref和out关键字
用ref:需要方法修改已初始化的变量。相当于C++的引用&用out:需要方法返回明确的结果,且不依赖初始值。正确使用它们可以让代码意图更清晰,同时避免不必要的变量拷贝或初始化开销。
2025-04-01 00:07:59
1806
原创 C#中的闭包捕获问题
闭包捕获问题()是编程中一个常见的陷阱,尤其在循环内创建委托(如Lambda表达式)时容易遇到。在C#中,,这可能导致循环中的多个委托共享同一个变量,最终得到意外的结果。
2025-03-31 13:30:57
252
原创 C++内存对齐
成员顺序:按对齐值从大到小排列成员可减少填充。总大小计算:结构体大小必须是其对齐值的整数倍。显式对齐控制降低对齐值,alignas可提高对齐值。性能影响:未对齐访问可能导致性能下降或硬件异常。
2025-03-30 23:21:42
405
原创 c++中vector的使用优化
/ 显式默认移动构造函数{}std::cout << "Vertex被Copy了一次" << std::endl;// 预分配内存,避免扩容// 直接构造,无拷贝return 0;可以看到就没有打印"Vertex被Copy了一次"了,说明没有拷贝构造函数的调用。
2025-03-30 00:19:28
1564
原创 C++中push_back和emplace_back有什么区别?
当传递的是已经存在的对象时,push_back和在功能上基本相同,但可能会有性能优势。当传递构造对象所需的参数时,更简洁,并且能避免不必要的临时对象创建和复制(或移动)操作,性能更优。
2025-03-30 00:17:23
226
原创 c++中的拷贝构造函数(深拷贝和浅拷贝)
浅拷贝适合无动态资源的简单对象(如仅包含基本类型的类)。深拷贝是管理动态资源时的必要手段。现代C++中,优先使用智能指针和RAII(Resource Acquisition Is Initialization)来避免手动深拷贝。
2025-03-30 00:03:04
616
原创 Unity异步加载为什么要用上委托或事件?
在 Unity 中使用 的主要原因是为了处理异步加载资源的结果,并实现非阻塞的代码逻辑。以下是详细的解释:当使用 这类异步加载方法时,资源加载需要一定时间(可能是几毫秒或更久),但代码不会停下来等待加载完成。此时需要一种机制,在加载完成后通知调用方:“你要的资源准备好了,现在可以用了。” 就是用来接收这个“通知”的委托(Delegate),它会在资源加载完成后被调用,并将加载到的资源( 类型)传递出去。如果是同步加载,可以直接返回资源:但异步加载不能直接返回结果,因为资源加载需要时间,方法执行到
2025-03-28 16:59:41
364
多关键字排序(c语言数据结构课设)
2024-12-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人