会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
hellozhangjz
博客园
首页
新随笔
管理
上一页
1
2
3
4
5
6
7
8
9
···
14
下一页
2022年6月10日
模板函数中的const
摘要: 所有讨论都是底层const指针或引用,顶层const不会传递进模板。 模板中有const,不管传进来是否是const,T都是非const类型。 template<typename T> void f(const T& a) { } int a; const int b = 10; f(a); //T
阅读全文
posted @ 2022-06-10 10:04 hellozhangjz
阅读(229)
评论(0)
推荐(0)
2022年6月8日
一次函数调用会构建几次临时对象?
摘要: struct Test { Test(){cout << "默认\n";} Test(Test &&) {cout << "移动\n"; }; Test & operator=(Test &&) {cout << "赋值\n"; return *this;} }; Test func() { ret
阅读全文
posted @ 2022-06-08 16:40 hellozhangjz
阅读(30)
评论(0)
推荐(0)
2022年6月7日
decltype总结
摘要: decltype会识别const和引用 decltype一个表达式的时候会判断该表达式是左值还是右值,如果是左值就返回引用,否则就返回非引用。 int &a = xx; const decltype(a) b = xxx; typedef int* pp; const pp x; 这里的b是int&
阅读全文
posted @ 2022-06-07 09:52 hellozhangjz
阅读(43)
评论(0)
推荐(0)
2022年5月24日
C++类的访问权限
摘要: 首先明确一个类的用户有三种: 一类用户:类的成员和友元 二类用户:子类的成员及子类的友元 三类用户:外部的用户代码(通过类的对象或指针) 一个类有三种成员 private:只有一类用户可以访问private成员。 protected:只有一、二类用户可以访问protected成员。 public:所
阅读全文
posted @ 2022-05-24 11:40 hellozhangjz
阅读(530)
评论(0)
推荐(0)
2022年5月21日
类型转换运算符
摘要: 类型转换函数负责将一个类类型转换成其他类型。典型的一个例子是将cin >> x作为循环的条件,就是将一个istream对象转换成了bool类型。基本形式如下 operator type() const; 类型转换运算符通常是隐式执行,容易引发错误,最好将其定义成显式的。 class A{ publi
阅读全文
posted @ 2022-05-21 18:18 hellozhangjz
阅读(31)
评论(0)
推荐(0)
2022年5月18日
左值和右值的成员函数
摘要: 一个对象是左值还是右值会影响其成员函数的调用,在参数后边放置一个引用限定符来修饰:&表示该对象是左值,&&表示该对象是右值。 class Foo{ public: Foo sorted() &&; //右值对象可以调用 Foo sroted() const &; //任何对象都可以 private:
阅读全文
posted @ 2022-05-18 20:14 hellozhangjz
阅读(115)
评论(0)
推荐(0)
对象移动
摘要: 右值的定义:只能出现在等号“=”右边的表达式。 当我们需要拷贝或者复制一个右值的时候,我们可以考虑移动右值。因为拷贝会新建一个对象,当对象初始化需要分配内存,拷贝的分配内存开销也很大,而移动不会新建对象,而是接管右值的资源。 对象移动是相对于对象拷贝的,在一些场景(比如:把对象作为一个参数传递)移动
阅读全文
posted @ 2022-05-18 17:24 hellozhangjz
阅读(69)
评论(0)
推荐(0)
2022年5月11日
C++ 赋值运算符和拷贝构造函数
摘要: 拷贝构造函数 class Foo{ public: Foo(); Foo(const Foo&); //自己定义的拷贝构造函数 }; 如果不自己定义,编译器会自己合成一个默认拷贝构造函数: class Foo{ public: int a,b,c; Foo(); Foo(const Foo&); /
阅读全文
posted @ 2022-05-11 20:44 hellozhangjz
阅读(66)
评论(0)
推荐(0)
2022年4月24日
Morris遍历:常数空间遍历二叉树
摘要: Morris遍历 cur有左树且第一次遍历到,去左孩子 没左树或者第二次遍历到,去右孩子 没右树,去后继节点 得到Morris序。对于该序列中出现两次的节点,只保留第一次遍历,结果就是先序遍历。只保留第二次遍历,结果就是中序。 对于后序遍历:第二次遍历到某个节点,则逆序打印这个节点的左子树的右边界,
阅读全文
posted @ 2022-04-24 10:20 hellozhangjz
阅读(61)
评论(0)
推荐(0)
2022年4月23日
(模板)Manacher算法:线性时间求字符串内回文子串的数量
摘要: 已通过leetcode647:https://leetcode-cn.com/problems/palindromic-substrings/ void get_d(vector<int> & d, const string & s) { //l r 为维护的最靠右的回文串边界 int n = s.
阅读全文
posted @ 2022-04-23 11:42 hellozhangjz
阅读(34)
评论(0)
推荐(0)
上一页
1
2
3
4
5
6
7
8
9
···
14
下一页
公告