摘要:
最长回文子串 输入一个字符串,找到回文、子串、最长,输出任意一个 详细思路 对于每一个起点,向右找到每一个终点,取出子串,比较翻转前和翻转后是否相同,相同更新答案,复杂度n3 精确定义 i子串起点 j子串终点 str1翻转前子串 str2翻转后子串 ans最长回文子串之一 class Solutio 阅读全文
posted @ 2021-07-25 20:50
offer快到碗里来~
阅读(56)
评论(0)
推荐(0)
摘要:
简洁易懂讲清原理,讲不清你来打我~ 非类成员函数不能是虚函数 静态函数不能是虚函数 构造函数不能是虚函数,因为构造函数调用完才形成虚表指针 内联函数不能是表现为多态性时的虚函数,因为内联在编译期,虚函数多态性在运行期 阅读全文
posted @ 2021-07-25 17:52
offer快到碗里来~
阅读(89)
评论(0)
推荐(0)
摘要:
简洁易懂讲清原理,讲不清你来打我~ 按实现分四种 重载多态:函数重载、运算符重载 子类型多态:虚函数 参数多态:类模板、函数模板 强制多态:基本类型转换、自定义类型转换 按时期 静态多态:编译期/早绑定,如重载、模板 动态多态:运行期/晚绑定,如虚函数 阅读全文
posted @ 2021-07-25 17:48
offer快到碗里来~
阅读(201)
评论(0)
推荐(0)
摘要:
简洁易懂讲清原理,讲不清你来打我~ 默认构造函数分为有用的和无用的 无用的默认构造函数是空函数 如果没有显示定义默认构造函数,编译器一般会生成无用默认构造函数,以下情况会生成有用默认构造函数 如果类B中数据成员有A a; 生成有用的构造函数B::B(){a.A::A();}调用a的默认构造函数 如果 阅读全文
posted @ 2021-07-25 17:39
offer快到碗里来~
阅读(62)
评论(0)
推荐(0)
摘要:
简洁易懂讲清原理,讲不清你来打我~ 内置类型无区别 效率高,如果放在构造函数体,运行到函数内部的时候,初始化列表已经将对象参数如string用默认构造函数初始化了一遍,在函数内部再赋值一遍 没有默认构造的类型只能用初始化列表 阅读全文
posted @ 2021-07-25 17:26
offer快到碗里来~
阅读(42)
评论(0)
推荐(0)
摘要:
简洁易懂讲清原理,讲不清你来打我~ 参数是无类型的,不做语法检查,只做替换 宏定义使源程序变长,函数调用不会 宏定义只占编译时间,不占运行时间,而函数调用占运行时间(分配内存、保留现场、值传递、返回值) 宏替换在编译前进行,不分配内存 阅读全文
posted @ 2021-07-25 16:52
offer快到碗里来~
阅读(96)
评论(0)
推荐(0)
摘要:
简洁易懂讲清原理,讲不清你来打我~ stl很多容器的移动构造函数和移动赋值运算符和常见函数如std::vector的push_back和emplace_back都使用右值引用 避免拷贝,提高效率 如果用左值引用,内部还是要深拷贝无法避免,所以用移动构造函数把拷贝的数据移动过来,被拷贝的不要了,避免深 阅读全文
posted @ 2021-07-25 16:46
offer快到碗里来~
阅读(315)
评论(0)
推荐(0)
摘要:
简洁易懂讲清原理,讲不清你来打我~ 性能上,左右值引用没有区别,都可以避免拷贝 右值引用可以指向左值,也可以通过std::move指向左值 左值引用只能指向左值,const左值引用可以指向右值 作为函数形参,右值引用和const左值引用都可以指向左右值,但右值引用还能修改 阅读全文
posted @ 2021-07-25 16:29
offer快到碗里来~
阅读(610)
评论(0)
推荐(0)
摘要:
简洁易懂讲清原理,讲不清你来打我~ 将左值转化为右值,可以被右值引用指向 int a=5; int &&ref_a_right=std::move(a); 等价于static_cast<T&&>(lvalue); 阅读全文
posted @ 2021-07-25 16:25
offer快到碗里来~
阅读(138)
评论(0)
推荐(0)
摘要:
简洁易懂讲清原理,讲不清你来打我~ 可以指向右值,不能指向左值 可以修改右值 阅读全文
posted @ 2021-07-25 15:59
offer快到碗里来~
阅读(66)
评论(0)
推荐(0)
摘要:
、能指向左值,不能指向右值就是左值引用 右值没有地址,没法修改,所以左值引用无法指向右值 const左值引用可以指向右值 const int &ref_a=5; stl容器push形参一般const左值引用,才能指向右值 void push_back(const value_type& val); 阅读全文
posted @ 2021-07-25 15:57
offer快到碗里来~
阅读(61)
评论(0)
推荐(0)
摘要:
简洁易懂讲清原理,讲不清你来打我~ 左值可以取地址,位于等号左边 右值不能取地址,位于等号右边 a是左值,A()是右值 阅读全文
posted @ 2021-07-25 15:50
offer快到碗里来~
阅读(110)
评论(0)
推荐(0)
摘要:
简洁易懂讲清原理,讲不清你来打我~ 当我们需要某个表达式的返回值类型又不想实际执行表达式时用decltype而不用auto 泛型编程中结合auto用于追踪函数返回值类型 template <typename T1, typename T2> auto multiply(T1 x, T2 y)->de 阅读全文
posted @ 2021-07-25 15:45
offer快到碗里来~
阅读(109)
评论(0)
推荐(0)
摘要:
简洁易懂讲清原理,讲不清你来打我~ 代替宏定义,更简洁 遍历 阅读全文
posted @ 2021-07-25 15:38
offer快到碗里来~
阅读(52)
评论(0)
推荐(0)
摘要:
简洁易懂讲清原理,讲不清你来打我~ 全局作用域符::name 类作用域符className::x 命名空间作用域符namespace::name 阅读全文
posted @ 2021-07-25 15:31
offer快到碗里来~
阅读(43)
评论(0)
推荐(0)
摘要:
简洁易懂讲清原理,讲不清你来打我~ using指示导入某个特定命名空间所有名字 少用using指示如using namespace std; 污染命名空间,using指示导入所有名称,可能与局部名称冲突,局部名称将覆盖空间中名称,编译器没有警告 using声明导入指定的名称 多用using声明如us 阅读全文
posted @ 2021-07-25 15:29
offer快到碗里来~
阅读(40)
评论(0)
推荐(0)
摘要:
简洁易懂讲清原理,讲不清你来打我~ union是节省空间的特殊的类,可以有多个数据成员,但任意时刻只有一个数据成员有值,当某个成员被赋值后其他成员变为未定义 默认public 有构造析构 不能作为基类、派生类,不含虚函数 阅读全文
posted @ 2021-07-25 15:15
offer快到碗里来~
阅读(50)
评论(0)
推荐(0)
摘要:
简洁易懂讲清原理,讲不清你来打我~ 最本质区别是默认控制访问,struct是public、class是private struct适合看做一个数据结构实现体,class更适合看做一个对象实现体 阅读全文
posted @ 2021-07-25 14:47
offer快到碗里来~
阅读(40)
评论(0)
推荐(0)
摘要:
简洁易懂讲清原理,讲不清你来打我~ sizeof()是运算符,不是函数 当操作数是指针,返回指针大小, 当操作数是数组名,返回数组总大小, 数组名并不完全等于指针,但数组名作为函数参数传递会退化为指针 当操作数是结构或类对象,返回对象总字节数 当操作数是联合union,返回最大字节成员的字节数 阅读全文
posted @ 2021-07-25 14:41
offer快到碗里来~
阅读(201)
评论(0)
推荐(0)
摘要:
简洁易懂讲清原理,讲不清你来打我~ assert()断言是宏,不是函数,如果括号内返回错误,终止程序,用来debug 加上#define NDEBUG就无法使用assert 阅读全文
posted @ 2021-07-25 14:32
offer快到碗里来~
阅读(55)
评论(0)
推荐(0)
浙公网安备 33010602011771号