随笔分类 -  C++

分享一些C++语法和使用习惯相关的问题
摘要:std::thread和std::bind都是延迟调用对象的函数,参数都使用了右值引用即移动和复制语义。 std::thread: template< class Function, class... Args > explicit thread( Function&& f, Args&&... a 阅读全文
posted @ 2022-05-22 17:51 放不下的小女孩 阅读(563) 评论(0) 推荐(0)
摘要:STL的算法和容器中常常能让用户提供自定义的比较方法,但是注意其中的坑: 一般的算法如sort(iterator,iterator,com)是函数模板,可以自动推断com的类型,所以com可以使functional和函数指针。 而容器是模板类,需要自己传入指针如priority_queue<int, 阅读全文
posted @ 2022-02-22 23:23 放不下的小女孩 阅读(90) 评论(0) 推荐(0)
摘要:C++11的bind函数,绑定一个可调用对象时,第二个参数为调用对象时,注意传入临时对象会调用拷贝构造函数,而传入指针则不用拷贝。 在写webserver时,先前创建的监听套接字就被第二个参数的对象复制了。然后bind完成后,调用其析构函数把监听套接字给关闭了。 阅读全文
posted @ 2022-02-20 00:32 放不下的小女孩 阅读(74) 评论(0) 推荐(0)
摘要:插入头尾:迭代器全部失效但是引用不失效 删除头尾:被删除的元素迭代器和引用失效 插入和删除中间:迭代器和引用全部失效 其中插入头尾操作引用不失效的原因是,deque由一个map和连续数组组成,其中map是指向数组的指针即二级指针,当插入头尾时,如果内存不够,会①复制原map的信息②申请新的连续空间作 阅读全文
posted @ 2022-01-17 23:39 放不下的小女孩 阅读(427) 评论(0) 推荐(0)
摘要:正则表达式中的或意义和C++中的||意义相同,均表示满足其中一个条件即可。如下式表示匹配一个个位数或者小于255的三位数。 [0-9]|(25[0-5])|(2[0-4][0-9]) 但是在有些测试正则表达式的软件中,正则表达式的或的用法类似于C++的逻辑或||,当满足某个条件后则不计算之后的其他条 阅读全文
posted @ 2021-11-06 12:29 放不下的小女孩 阅读(966) 评论(0) 推荐(0)
摘要:回溯算法或DFS中需要反复回到树的不同层,用于控制层的参数谨慎使用自增++和自减--运算符。 这里直接贴一个leetcode第77题组合的回溯解法。https://leetcode-cn.com/problems/combinations/ 1 class Solution { 2 vector<i 阅读全文
posted @ 2021-11-03 23:24 放不下的小女孩 阅读(75) 评论(0) 推荐(0)
摘要:Initialization order The order of member initializers in the list is irrelevant: the actual order of initialization is as follows: 1) If the construct 阅读全文
posted @ 2021-05-31 20:52 放不下的小女孩 阅读(131) 评论(0) 推荐(0)
摘要:C++Primer第十九章的动态类型转换部分讲的不是很清楚,于是自己查cpp的官方手册总结一下。 dynamic_cast < new-type > ( expression ) 动态类型转换是可以安全的在继承体系将指针和引用进行向上、向下和横向的转换。其表达式的类型为运行时的动态类型。具体功能如下 阅读全文
posted @ 2021-05-18 16:29 放不下的小女孩 阅读(3704) 评论(0) 推荐(0)
摘要:学习完C++Primer第五版第十七章第三小节正则表达式后小结一下: 1、regex的匹配机制 不能直接确定输入序列中总共有多少表达式正确匹配给定的正则表达式。 注意:不要误认为match的成员函数size()返回的是匹配值的数量,匹配成功时size返回的是匹配的子表达式的数量+1(此处C++Pri 阅读全文
posted @ 2021-05-12 22:52 放不下的小女孩 阅读(166) 评论(0) 推荐(0)
摘要:拷贝构造函数的第一个参数要求是自身类型的引用,但是没有一定要求具有底层const属性即对常量的引用,但是使用时最好加上const,原因是我们可能在某些“不知道”的情况下对常量对象调用拷贝构造函数。 来看一个例子 class HasPtr{ public: HasPtr(const std::stri 阅读全文
posted @ 2021-04-26 18:47 放不下的小女孩 阅读(405) 评论(0) 推荐(0)
摘要:在学习《C++primer 第五版》(中文版)中第12章动态内存与智能指针的时候遇到了一个习题,练习12.13: 练习 12.13:如果执行下面的代码,会发生什么? auto sp=make_shared<int>(); auto p=sp.get(); delete p; 上述代码创建了一个指向i 阅读全文
posted @ 2021-04-25 17:44 放不下的小女孩 阅读(903) 评论(1) 推荐(0)
摘要:在学习《C++primer 第五版》(中文版)中第七章类的时候遇到了一个有意思的习题,原题如下: 练习7.43:假定有一个名为NoDefault的类,它有一个接受int的构造函数,但是没有默认的构造函数。定义类C,C有一个Nodefault类型成员,定义C的默认构造函数 本题的答案很简单,直接利用初 阅读全文
posted @ 2021-04-14 14:54 放不下的小女孩 阅读(466) 评论(0) 推荐(0)