随笔分类 -  C/C++

摘要:相关函数: stat, lstat, symlink 表头文件: #include <unistd.h> 定义函数:int readlink(const char *path, char *buf, size_t bufsiz); 函数说明:readlink()会将参数path的符号连接内容到参数b 阅读全文
posted @ 2020-08-27 14:34 cyssmile 阅读(395) 评论(0) 推荐(0)
摘要:关于这个东西,网上的教程真的太多了。这里我记录一个我觉得勉强有意思的,理解从理解函数指针到回调函数的过程。回调函数可以做很多东西,比如实现工厂模式,反射机制啊,某些种类的单例模式都可能用到。 反正挺无聊的。 1.理解函数指针 比如我要定义一个返回值为int 参数为(int, void*)的函数指针, 阅读全文
posted @ 2020-08-20 16:41 cyssmile 阅读(178) 评论(0) 推荐(0)
摘要:####1.lambda函数捕获 lambda函数捕获分值捕获和引用捕获 采用值捕获的前提是变量可以拷贝,与参数不同的是被捕获的变量的值是在lambda创建的时候拷贝的,被捕获的变量的值,不会随着改变变量在函数内后面的改变而改变。 void func(){ size_t v1 = 42; auto 阅读全文
posted @ 2020-08-13 16:00 cyssmile 阅读(1526) 评论(0) 推荐(0)
摘要:两者都是把地址传到函数中,都可以对传入的指针指向的值进行修改。不同点*&还能改变指针的指向。 下面一段程序测试*&还能改变针的指向 #include<iostream> struct point{ //int x; //int y; }; void changeNum1(point *&num_pt 阅读全文
posted @ 2020-08-12 16:06 cyssmile 阅读(2160) 评论(0) 推荐(0)
摘要:今天遇到这样一个问题,就是函数的一个参数类似这样的 vector<int> *p 。开始还觉得有点怪怪的。 其实是这边项目中有个代码规范,如果传引用,就要一定要使用const进行修饰,为了能够在函数类能够修改传入的东西 所以就传入了一个类似vector< int > *p的指针。 其实对与p中的元素 阅读全文
posted @ 2020-08-11 11:59 cyssmile 阅读(196) 评论(0) 推荐(0)
摘要:这个真的很简单,就当笔记记录吧 #include<cmath> double PI = acos(-1); 阅读全文
posted @ 2020-06-10 17:05 cyssmile 阅读(1181) 评论(0) 推荐(0)
摘要:今天玩游戏,8层的汉诺塔限时,玩不出来。于是我找了下网上的代码,大概是这样的 在这段代码中除了要限定取值范围,还应该限制n的数据类型。 举个栗子:当n为浮点数,这不就出错了嘛。 阅读全文
posted @ 2020-05-17 21:10 cyssmile 阅读(242) 评论(0) 推荐(0)
摘要:1、 count_if 和 lambda联用 9、 comparing range equal is_permutation //check if vec is a heap is_heap(vec.begin(),vec.end()); auto iter = is_heap_until(vec. 阅读全文
posted @ 2020-04-29 19:14 cyssmile 阅读(206) 评论(0) 推荐(0)
摘要:https://www.cnblogs.com/cyssmile/p/12791302.html 在这里我们谈到了functor可以用于在容器中定义排序方式。 这里在讲到一个简单的例子: 这种方式与下面这种方式定义是相同的. 那么如何定义一个由大到小排序的set呢 我们写段代码测试下吧 本节代码地址 阅读全文
posted @ 2020-04-29 18:19 cyssmile 阅读(682) 评论(0) 推荐(0)
摘要:头文件 #include<functional> 1. bind 示例一 void useBindDemo() { set<int> myset; myset.insert(3); myset.insert(4); myset.insert(5); vector<int> vec; transfor 阅读全文
posted @ 2020-04-29 17:46 cyssmile 阅读(396) 评论(0) 推荐(0)
摘要:考虑以下需求: 统计某个容器中符合规定的元素个数,比如这里规定就是小于某个数(如果有其他需求可以自定义一个仿函数) 来我们来写代码: include include include include using namespace std; template class AddValues{ priv 阅读全文
posted @ 2020-04-28 00:20 cyssmile 阅读(794) 评论(0) 推荐(0)
摘要:其他类型转成string 类型之间的相互转换 完整代码 阅读全文
posted @ 2020-04-27 23:07 cyssmile 阅读(140) 评论(0) 推荐(0)
摘要:仿函数 1. 仿函数不是函数,是一个class或者struct 2. 仿函数重定义操作符() 根据传入的参数个数分为unary_function(1个参数)和 binary_function(2个参数) multiplies 的定义 使用示例 阅读全文
posted @ 2020-04-27 22:53 cyssmile 阅读(799) 评论(0) 推荐(0)
摘要:首先for_each的时候要加入头文件 我在写一个让vector中数据都加2的函数 开始是这样写的 结果是这样的: 这里并不会改变vector中的数据,其实想想就明白,这里应该用引用或指针 2 如果想改变任意加的值可以这样写 3 然后我们一直都知道全局变量不好吧,所以我们这样改 阅读全文
posted @ 2020-04-27 21:45 cyssmile 阅读(1080) 评论(0) 推荐(1)
摘要:之前在做一个东西,使用了unordered_map,其中出现了一个bug。后面发现原来是使用unordered_map 时,不能通过重新插入key&value更新之前的东西。 其中multi_set unordered_set multi_map 都不能这样改变 比如 unordered_map<c 阅读全文
posted @ 2020-04-27 18:30 cyssmile 阅读(4435) 评论(0) 推荐(0)