自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 C++ lambda表达式

捕获列表含义能否访问外部变量对外部变量的影响[]空捕获不能访问任何外部变量无(不涉及外部变量)[=]按值捕获所有能访问,使用的是变量的副本内部修改副本不影响外部原始变量。

2025-10-20 16:09:38 950

原创 常用代码小片段——GetCurrentTimeStr

【代码】常用代码小片段——GetCurrentTimeStr。

2025-08-27 15:32:06 93

原创 QT的connect使用注意事项--信号发送者和接收者初始化

确保连接信号槽时,信号发送者和接收者都已被正确初始化。

2025-08-21 11:57:28 161

原创 Visual Assist(小番茄插件)过期解决办法(非永久)

Visual Assist过期解决办法(非永久)

2025-07-14 11:01:43 523

原创 QT中的std::to_string()和std::to_wstring()

【代码】QT中的std::to_string()和std::to_wstring()

2025-07-09 11:33:01 114

原创 sprintf函数

使用示例代码出现C4996报错,如下:添加宏_CRT_SECURE_NO_WARNINGS,仍报错。替换为安全的函数Sprintf_s后不报错。

2025-06-05 10:37:53 251

原创 C++之运算符重载

4.1 和重载拷贝构造函数同理,如果类的属性有指针,有new新的内存空间,那么为了避免浅拷贝带来的内存重复释放问题,需要重载赋值运算符。2.2 ostream对象只能有一个,所以要 ostream& cout。6.1 函数调用运算符就是(),operator(),也称仿函数。2.4 如果属性是私有的,可以将左移运算符重载函数声明为友元。4.2 返回类型是Person &,实现链式编程。2.1 只能用全局函数实现左移运算符重载。3.2 前置++返回引用,后置++返回值。6.函数调用运算符重载。

2025-02-23 23:46:16 295

原创 C++之友元friend

1.友元的三种实现:全局函数做友元、类做友元、成员函数做友元。

2025-02-23 19:36:00 145

原创 C++之深拷贝与浅拷贝

编译器提供的拷贝构造函数是浅拷贝,如果成员属性有指针类型,拷贝构造函数中简单地把指针的值复制了,即两个指针指向同一个内存空间,析构的时候就会重复delete同一块内存!所以,如果成员属性有指针类型,要自定义拷贝构造函数,要手动new新内存,使新指针指向新内存。

2025-02-19 23:05:53 195

原创 C++之构造函数、析构函数

4.3如果你自定义了拷贝构造函数,没有自定义默认构造函数,那么编译器既不提供拷贝构造函数,也不提供默认构造函数。体现为 Person p;会报错,没有无参构造函数。4.2如果你自定义了默认构造函数或者有参构造函数,那么编译器就不提供默认构造函数,但是会提供拷贝构造函数。4.1编译器会提供默认构造函数、拷贝构造函数、析构函数。4.编译器提供默认构造函数、拷贝构造函数的规则。3.拷贝构造函数的调用时机。1.默认构造函数的调用。2.构造函数的三种调用。

2025-02-19 22:46:12 270

原创 C++学习之函数

从左到右,第一个默认值出现后,后面的都要有默认值。2.函数的声明和实现,只能有一处写默认值。1.函数参数列表的默认值。

2025-02-13 23:51:34 159

原创 C++之引用

1.引用的本质是指针常量,所以引用不可以修改(指针的值不可以修改),引用的值可以修改(指针指向的内存空间的值可以修改)。2.不要返回局部变量的引用,除非是static局部变量。3.如果函数返回引用,那么这个函数调用可以作为左值。

2025-02-13 23:28:31 162

原创 栈的扩容.

这行代码只是简单地让 newArray指针指向了 _array所指向的内存地址,而并没有将 _array中的元素复制到 newArray所指向的新内存空间中。此时,newArray和 _array指向的是同一块内存,后续对 newArray的操作实际上就是对 _array的操作。而后续_array指向的内存被delete了。扩容时 需要将旧数组的数据复制到新数组。

2025-02-13 09:19:30 242

原创 C++17新特性之结构化绑定

tuple,pair,tie 待学习。

2024-10-29 23:39:45 132

原创 函数指针、lambda表达式

【代码】函数指针、lambda表达式。

2024-10-27 23:59:48 120

原创 C++手写String类 体会拷贝构造函数

5.默认拷贝构造函数是浅拷贝。如果把str赋值给str2,两个m_Buffer指向同一块内存,析构时却delete两次,程序会崩溃。所以要重载拷贝构造函数,在里面new新内存进行深拷贝。注释掉自己写的默认拷贝函数就可以看到效果了。tip:函数的值传递,也会进行复制。尽量使用“const 引用”,printFunc(const String& str)。减少复制,程序更快。1.[m_Size + 1],不要忘记字符串的结尾‘\n’.4.有new就要有delete!3.friend 声明。

2024-10-23 23:21:52 200 1

原创 C++计时之测试代码片段运行时间小技巧

std::chrono是C++11引入的日期时间处理库,其中包含3种时钟类:system_clock(系统时钟),steady_clock(稳定时钟),high_resolution_clock(高精度时钟);https://blog.youkuaiyun.com/weixin_42322256/article/details/124060870文章提到。在测试函数里面构造一个Timer对象,调用测试函数,这样就可以自动计时!所谓时钟,是指从一个时点开始,按照某个刻度的一个计数;计时小技巧之测试代码片段运行时间!

2024-10-23 00:34:30 495

原创 C++重载箭头操作符

2.ScopedPtr类的构造函数和析构函数(ScopedPtr析构时对实际对象进行自动删除)番外知识点:利用箭头操作符获取成员变量的偏移量(就是内存对齐的偏移量)看cherno的c++ 第46集。1.指针与解引用,点跟箭头的使用。

2024-10-22 23:23:07 173

原创 C++隐式转换和explicit关键字

/那么 Entity b = 22;这个写法就会报错,要写成Entity a(22);//可以这样写的原因是 进行了隐式转换(/隐式构造函数),隐式地将转换成一个Entity。//报错:不存在从“从const char [7]到Entity的适当构造函数”,//在构造函数前加上explicit,意为禁用隐式转换,必须显式地调用构造函数。//因为“cherno”是char[],而不是string,需要转换2次。

2024-10-22 22:50:09 435

原创 C++命名空间namespace

5.注意事项:不要在头文件中使用命名空间。

2024-10-22 22:31:52 141

原创 std::vector使用优化

push第二个元素时,申请新内存,容量为2,把原本的第一个元素copy到新内存(打印1次)并且插入第二个元素(main栈帧copy到verctor[1],打印1次copy)。到这里就会显示3个"copy"。vector可以动态分配内存,申请的旧内存用完时,会申请更大的新内存,把旧内存的内容copy到新内存,再释放旧内存。原本的内存容量是1,push第一个元素时,打印copy1次(这里的copy是从main栈帧拷贝到vector)。push2个元素时,打印copy3次,push3个元素时,打印copy6次!

2024-10-21 22:35:04 823

2023【1000道c++大厂面试题及答案】.pdf

2023【1000道c++大厂面试题及答案】.pdf

2024-06-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除