1 2 3 4 5 ··· 24 下一页
摘要: 1.为什么C++要引入new/delete? C语言内存管理方式在C++中是可以继续使用,比如malloc、realloc等函数。但有些地方这些传统的空间申请函数就显得有些无能为力,而且使用起来比较麻烦。 是的,在C++的自定类型数据中,常需要在定义时顺便调用构造函数初始化。而原C语言的空间申请函数 阅读全文
posted @ 2026-01-05 16:22 超轶绝尘 阅读(4) 评论(0) 推荐(0)
摘要: #include<iostream> #include<string> template<typename T> class Vector { private: size_t m_Size = 0; size_t m_Capacity = 0; T* m_Data = nullptr; public 阅读全文
posted @ 2026-01-05 16:11 超轶绝尘 阅读(4) 评论(0) 推荐(0)
摘要: #include<iostream> template<typename T, size_t S> class Array { private: T m_Data[S]; public: constexpr int Size() const { return S; } T& operator[](s 阅读全文
posted @ 2026-01-04 20:07 超轶绝尘 阅读(5) 评论(0) 推荐(0)
摘要: static_assert 是 C++ 中的编译时断言机制,用于在编译阶段验证常量表达式条件,若条件不满足则中断编译并显示错误消息,从而提升代码健壮性。 基本语法与参数解析 static_assert 的语法为 static_assert( constant-expression, string-l 阅读全文
posted @ 2026-01-04 19:40 超轶绝尘 阅读(11) 评论(0) 推荐(0)
摘要: constexpr constexpr是 C++ 中用于声明编译时常量表达式的关键字‌,它要求变量、函数或构造函数的计算在编译时完成,而非运行时,从而提升程序性能。‌‌ 基本概念与核心特性 constexpr 的核心是‌强制编译时计算‌,适用于变量、函数和类构造函数: 1‌. 变量声明‌:必须用常量 阅读全文
posted @ 2026-01-04 19:27 超轶绝尘 阅读(11) 评论(0) 推荐(0)
摘要: 到目前为止,我们已基本上掌握了移动语义的要点和所有基本知识,移动语义能够将一个对象移动到另一个对象上,但是我们还没有涉及其中的关键部分,或者说是两个关键部分: std::move move assignment operator (移动赋值运算符)这是一个赋值操作符,当我们想把一个对象移动到一个已有 阅读全文
posted @ 2026-01-03 21:59 超轶绝尘 阅读(13) 评论(0) 推荐(0)
摘要: 移动语义 移动语义让事情变得简单,移动语义本质上允许我们移动对象。这在C++11之前是不可能的,因为C++11引入了右值引用,这是移动语义所必须的。基本思想是,当我们写C++代码时,有很多情况下,我们不需要或者不想把一个对象从一个地方复制到另一个地方,但又不得不复制,因为这是唯一可以复制的地方。 例 阅读全文
posted @ 2026-01-03 17:10 超轶绝尘 阅读(6) 评论(0) 推荐(0)
摘要: 一、什么是左值右值 很多人称左值是有地址的值(located value), 不完全正确。 左值是有某种存储支持的变量,右值是临时值。 左值引用仅仅接受左值,除非是用const; 右值引用仅仅支持右值, 随着这个系列的深入,特别是移动语义的情况,我们会越来越清楚地知道,为什么它很重要了。 #incl 阅读全文
posted @ 2026-01-02 17:02 超轶绝尘 阅读(7) 评论(0) 推荐(0)
摘要: 内存是非常重要的东西 知道你的程序什么时候分配内存 特别是堆内存 是很有用的 如果知道程序在哪里分配内存 就有可能减少它 从而优化程序 也可以更好地了解程序是如何工作的 需要重写new运算符 来检测发生的内存分配 我们可以通过在operator new中加入一个断点 来追踪这些内存分配的来源 #in 阅读全文
posted @ 2026-01-02 11:10 超轶绝尘 阅读(6) 评论(0) 推荐(0)
摘要: 小字符串优化 SSO 能允许速度慢的话 就不要用C++了 减少字符串的使用 就是减少内存分配 STL对于小到一定程度的字符串 可以只分配一小块基于栈的缓冲区 而不是堆分配的 所以如果你有一个非常小的字符串 就不用考虑const char*或者试图微观管理 优化你的代码 因为STL本来就不会做堆分配 阅读全文
posted @ 2026-01-02 11:04 超轶绝尘 阅读(10) 评论(0) 推荐(0)
1 2 3 4 5 ··· 24 下一页