随笔分类 -  C++

摘要:forwrad和move std::move一定会将实参转换为一个右值引用,并且使用std::move不需要指定模板实参,模板实参是由函数调用推导出来的。而std::forward会根据左值和右值的实际情况进行转发,在使用的时候需要指定模板实参。 std::move无条件转换到右值。就其本身而言,它 阅读全文
posted @ 2023-03-09 15:38 预期 阅读(64) 评论(0) 推荐(0)
摘要:0. 问题 char* text = "abcdef ghi"; *(text+3) = 'x'; // 可以编译,但运行到这句就会出错 char a[100] = "abcdef ghi"; char* text = a; *(text+3) = 'x'; // 可以 原因:涉及到内存分配。一个程 阅读全文
posted @ 2023-02-24 21:33 预期 阅读(117) 评论(0) 推荐(0)
摘要:线程池的回调工作函数为什么必须设置成static,类内静态成员函数? pthread_create(pthread_t *thread_tid, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg); 创建线程 阅读全文
posted @ 2023-02-17 21:15 预期 阅读(161) 评论(0) 推荐(0)
摘要:printf的缓冲机制 参考链接:https://www.cnblogs.com/sinferwu/p/12426410.html printf是C库函数,是对系统调用write的封装,有其特有的缓冲机制。 printf函数实际上只是输出到了标准输出缓冲队列上,并没有实实在在的打印到屏幕上,标准输出 阅读全文
posted @ 2023-02-11 16:41 预期 阅读(168) 评论(0) 推荐(0)
摘要:使用GDB分析core文件 当进程发生异常会产生段错误 生产core文件 通过命令ulimit -a查看信息,一般是第一行,core file size是core文件的大小,若是0,则不产生core文件 通过ulimit -c xx 可以设置大小,或者直接设置成unlimited 不限制 ulimi 阅读全文
posted @ 2023-02-11 16:40 预期 阅读(800) 评论(0) 推荐(0)
摘要:在刷leetcode的时候,声明一个二维的vector,报了这个错误。 vector<vector<int>> edge(1000); 错误原因:编译器无法区分这条语句是成员变量声明还是成员函数声明 解决办法: 1. 利用vector的赋值构造函数 1 vector<vector<int>> edg 阅读全文
posted @ 2022-09-21 14:07 预期 阅读(593) 评论(0) 推荐(0)