![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C、C艹、数据结构大杂烩
JeffyGao
吃完饭再说 0.0
展开
-
对 for_each进行讨论
for_each 是 C++11 里的新特性定义在头文件 里形式:template< class InputIt, class UnaryFunction >UnaryFunction for_each( InputIt first, InputIt last, UnaryFunction f );说明:按顺序将给定的函数对象f应用于取消引用 range 中的每个迭代器的结果[first, last)。将给定的函数对象f应用于取消引用范围内每个迭代器的结果[first, l原创 2022-05-05 14:29:28 · 297 阅读 · 0 评论 -
针对上一篇用 lambda替换了 仿函数,接下来探究下是否能用 仿函数代替 lambda
在上一篇中用 lambda替换了 仿函数,接下来探究下是否能用 仿函数代替 lambda测试:写一个 sort() 函数测试结论:是可以的,不过这里仿函数要加一个() 实例化#include <iostream>#include <algorithm>#include <vector>// 写仿函数class Cmp{public: bool operator()( const int& a, const int& b ) c原创 2022-05-05 12:48:10 · 268 阅读 · 0 评论 -
用仿函数、lambda对set进行自定义排序
用仿函数、lambda对set进行自定义排序仿函数:仿函数不是函数,它是个类;仿函数重载了()运算符,使得它的对你可以像函数那样子调用(代码的形式好像是在调用函数)。实现:我先按照教材里的仿函数写,然后替换成 lambda试试。有点难度,节主了万能的百度哈哈(注意下面lambda的注释)#include <iostream>#include <string>#include <set>class Student{public: St原创 2022-05-05 12:46:59 · 846 阅读 · 0 评论 -
assignment move
针对 上一篇 move ctor给出的两个示例,另外补充了 assignment move版再次熟悉使用 std::move()std::move 是一个由标准库提供的实用函数在编译时,它会找出输入的是什么类型。如下代码所示,只开辟了一次内存。#include <iostream>#include <cstring>class String{public: String( ) = default; // ctor String( const char*原创 2022-04-27 16:15:18 · 132 阅读 · 0 评论 -
move ctor
move构造函数 探究右值引用原创 2022-04-27 16:09:30 · 287 阅读 · 0 评论 -
vs code中文乱码
修改了右下角 UTF-8,仍然不行;文件-首选项-设置 - encoding 将 Encoding改成 GKB,仍然不行;在终端输入chcp 65001 再运行就行,暂时修改win系统的编码方式,可以!原创 2021-12-03 23:58:59 · 207 阅读 · 0 评论 -
new和delete是如何实现的,new 与 malloc的异同处
new和delete是如何实现的,new 与 malloc的异同处 在new一个对象的时候,首先会调用malloc为对象分配内存空间,然后调用对象的构造函数。delete会调用对象的析构函数,然后调用free回收内存。 new与malloc都会分配空间,但是new还会调用对象的构造函数进行初始化,malloc需要给定空间大小,而new只需要对象名。既然有了malloc/free,C++中为什么还需要new/delete呢?首先,在功能上 malloc/free 和 new/delete原创 2021-02-03 09:26:13 · 370 阅读 · 0 评论 -
inline关键字说一下 和宏定义有什么区别
inline 是内联的意思,可以定义比较小的函数。因为函数频繁调用会占用很多的栈空间,进行入栈出栈操作也耗费计算资源,所以可以用inline关键字修饰频繁调用的小函数。编译器会在编译阶段将代码体嵌入内联函数的调用语句块中。内联函数在编译时展开,而宏在预编译时展开。在编译的时候,内联函数直接被嵌入到目标代码中去,而宏只是一个简单的文本替换。内联函数可以进行诸如类型安全检查、语句是否正确等编译功能,宏不具有这样的功能。宏不是函数,而inline是函数;宏在定义时要小心处理宏参数,一般用括号括起来,否原创 2021-01-29 10:41:20 · 249 阅读 · 0 评论 -
define、const、typedef的区别与联系
define 和const的联系与区别(编译阶段、安全性、内存占用等)联系:它们都是定义常量的一种方法。区别:• define定义的常量没有类型,只是进行了简单的替换,可能会有多个拷贝,占用的内存空间大;const定义的常量是有类型的,存放在静态存储区,只有一个拷贝,占用的内存空间小。• define定义的常量是在预编译阶段进行替换,而const在编译阶段确定它的值。• define不会进行类型安全检查,而const会进行类型安全检查,安全性更高。• const可以定义函数而define不可以原创 2021-01-29 10:28:31 · 836 阅读 · 2 评论