- 博客(15)
- 收藏
- 关注
原创 C++ 中的构造函数初始化列表
因此,使用初始化列表不仅可以提高性能(避免双重初始化),在某些情况下还是必需的。这是 C++ 中的最佳实践之一。双重初始化指的是当你不使用初始化列表,而在构造函数体内赋值时可能发生的情况。使用初始化列表通常比在构造函数体内赋值更高效,因为它避免了双重初始化。
2024-12-31 14:07:17
156
原创 C++,什么情况下会调用移动构造函数,什么情况下会调用移动赋值运算符
在 STL 容器中,如果需要对已存在的元素进行赋值操作,并且新赋值的元素是一个右值,移动赋值运算符将被调用。:当一个对象作为函数的返回值时,移动构造函数可以将临时对象的资源转移到接收对象,而不是复制资源。:如果在类的构造函数中使用初始化列表来赋值现有对象,并且使用了右值,也会调用移动赋值运算符。总之,任何时候当一个对象被视为右值(即可以“移动”的对象)时,都会调用移动构造函数。:在函数参数中,如果参数是以值传递的,并且是右值,可能会调用移动赋值运算符。来转换一个对象为右值时,会调用移动构造函数。
2024-10-24 17:39:45
409
原创 C++11 move用法总结
C++11 中的是一种用于实现移动语义的工具,通过减少不必要的拷贝来提高程序效率。使用std::move可以将对象的资源转移,而不是拷贝它们,避免了性能损耗。下面详细解释其用法和背后的移动语义。
2024-09-05 18:12:15
882
原创 C++ 拷贝构造函数、移动构造函数以及用法
int* data;public:// 自定义拷贝构造函数,执行深拷贝// 分配新内存并复制值如果类中有动态分配的资源(如指针),可能需要自定义移动构造函数,以避免重复释放资源。int* data;public:// 自定义移动构造函数// 转移资源的所有权// 避免原对象释放资源拷贝构造函数用于创建对象的副本,通常涉及深拷贝的情形。移动构造函数则用于转移资源,避免了不必要的深拷贝,提高了性能。
2024-09-05 14:38:39
563
原创 代码随想录算法训练营第十五天 | 二叉树 ● 层序遍历 10 ● 226.翻转二叉树 ● 101.对称二叉树
● 226.翻转二叉树。● 101.对称二叉树。
2023-08-24 14:29:14
116
1
原创 代码随想录算法训练营第十四天 | 二叉树● 理论基础● 递归遍历 ● 迭代遍历● 统一迭代
【代码】代码随想录算法训练营第十四天 | 二叉树● 理论基础● 递归遍历 ● 迭代遍历● 统一迭代。
2023-08-23 23:01:23
145
原创 代码随想录算法训练营第十三天 | leetcode ● 239. 滑动窗口最大值● 347.前 K 个高频元素
● 239. 滑动窗口最大值(困难)347.前 K 个高频元素。
2023-08-22 22:32:34
119
1
原创 代码随想录算法训练营第十一天 | ● 20. 有效的括号● 1047. 删除字符串中的所有相邻重复项● 150. 逆波兰表达式求值
● 1047. 删除字符串中的所有相邻重复项。150. 逆波兰表达式求值。● 20. 有效的括号。
2023-08-22 12:47:07
107
1
原创 代码随想录算法训练营第十天 | 力扣 ● 232.用栈实现队列● 225. 用队列实现栈
● 225. 用队列实现栈。● 232.用栈实现队列。
2023-08-21 13:38:37
147
1
原创 代码随想录 | Day8:leetcode ● 344.反转字符串● 541. 反转字符串II● 剑指Offer 05.替换空格● 151.翻转字符串里的单词● 剑指Offer58-II.左旋
【代码】代码随想录 | Day8:leetcode ● 344.反转字符串● 541. 反转字符串II● 剑指Offer 05.替换空格● 151.翻转字符串里的单词● 剑指Offer58-II.左旋。
2023-08-16 23:28:30
38
1
原创 代码随想录 | Day7:leetcode ● 454.四数相加II ● 383. 赎金信 ● 15. 三数之和 ● 18. 四数之和
【代码】代码随想录 | Day7:leetcode ● 454.四数相加II ● 383. 赎金信 ● 15. 三数之和 ● 18. 四数之和。
2023-08-16 00:05:16
76
1
原创 代码随想录 | Day6:leetcode ● 哈希表理论基础 ● 242.有效的字母异位词 ● 349. 两个数组的交集 ● 202. 快乐数● 1. 两数之和
【代码】代码随想录 | Day6:leetcode ● 哈希表理论基础 ● 242.有效的字母异位词 ● 349. 两个数组的交集 ● 202. 快乐数● 1. 两数之和。
2023-08-14 23:25:56
53
原创 代码随想录 | Day4:leetcode 22.两两交换链表中的结点 19.删除链表的倒数第n个结点 面试02.07链表相交 142.环形链表
【代码】代码随想录 | Day4:leetcode 22.两两交换链表中的结点 19.删除链表的倒数第n个结点 面试02.07链表相交 142.环形链表。
2023-08-13 23:59:50
84
1
原创 代码随想录算法训练营第三天 |链表理论基础 ● 203.移除链表元素 ● 707.设计链表 ● 206.反转链表
【代码】代码随想录算法训练营第三天 |链表理论基础 ● 203.移除链表元素 ● 707.设计链表 ● 206.反转链表。
2023-08-12 18:10:32
632
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人