- 博客(19)
- 收藏
- 关注
原创 数据库进阶学习:索引分类和创建语法
内容及图片来源:黑马程序员索引分类:1.主键索引:针对表主键创建的索引特点:默认自动创建,只有一个关键字:primary2.唯一索引:避免同一个表中某数据列中的值重复特点:多个关键字:unique3.常规索引:快速定位特定数据特点:多个关键字:4.全文索引:查找文本关键词,而不是比较索引中的值特点:多个关键字:fulltext按INNODB存储引擎,存储形式分类:聚集索引:将数据和索引放在一块,索引结构的叶子节点保存了数据,必须有且唯一 二级索引
2022-04-18 20:51:55 2341
原创 初学者的C++11学习:弱引用智能指针
内容学习自:爱编程的大丙一、初始化其作为辅助shared_ptr的存在,不会增加引用计数,析构也不会减少引用计数,他的主要作用就是作为一个旁观者监视shared_ptr中的管理的资源是否存在shared_ptr<int> p(new int);weak_ptr<int> p1;//构造了空的weak_ptr对象weak_ptr<int> p2(p1);//通过weak_ptr对空的weak_ptr构造weak_ptr<int> p3(p)
2022-02-10 14:48:07 483
原创 初学者的C++11学习:独占智能指针
内容学习自:爱编程的大丙一、初始化std::unique_ptr 是一个独占型的智能指针,它不允许其他的智能指针共享其内部的指针,可以通过它的构造函数初始化一个独占智能指针对象,也可以使用std::move来转移这个指针,但是不允许通过赋值将一个 unique_ptr 赋值给另一个 unique_ptr;基本初始化unique_ptr<int> func(){ return unique_ptr<int>(new int(1));}void main
2022-02-09 21:16:37 591
原创 初学者的C++11学习:共享智能指针
内容学习自:爱编程的大丙一、共享智能指针智能指针是指向动态分配(堆)对象指针的类,用于对指针管理的对象生存期的控制。确保在离开指针作用域时能自动销毁动态分配的对象。其核心机制就是引用计数,每使用一次,内部引用计数加1,每析构依次,引用计数减1,到0的时候删除所指向堆内存。头文件<memory>std::shared_ptr;初始化:std::share_ptr<T> intelligent_ptr(new T());1.查看当下类型的堆内存被几.
2022-02-09 20:41:17 798
原创 初学者的C++11学习:move转移和forward完美转发
内容学习自:爱编程的大丙一、move因为存在不能用左值初始化右值引用的问题,所以可以借助std::move()函数将左值转化为右值。这个函数也具有移动语义,即将对象状态或者所有权从一个对象转移到另一个对象,没有进行内存拷贝。std::move 很像类型转换 static_cast<T&&>(lvalue);使用方法:class test{ public: test(){}};void main(){ test t;
2022-02-08 22:26:31 468
原创 初学者的C++11学习:右值引用和&&的特性
内容学习自:爱编程的大丙一、右值lvalue是loactor value不是left value,rvalue是read value不是right value。左值是指储存在内存中,有明确储存地址(地址可取)的数据 右值是指可以提供数据值的(地址不可取)数据便捷区分法:可取地址->左值 有名有姓->左值 //左值 int num = 9; //左值引用 int& a = num; //常量左值引用 const int& c = num;
2022-02-05 22:49:27 588
原创 初学者的C++11学习:lambda表达式
内容学习自:爱编程的大丙1.前言声明式编程:不需要写额外的命名函数和函数对象 简洁,使得开发高效 实现功能打包,使程序灵活lambda定义了一个匿名函数,并且可以捕捉一定范围内的变量,用法://[capture](params) opt -> ret {body;};//例void main(){ int a = 10,b = 20; auto c = [&] {return a++;} auto d = [=,&b] {return
2022-01-30 22:26:44 762
原创 初学者的C++11学习:委托构造函数,继承构造函数
内容学习自:爱编程的大丙一、委托构造函数委托构造函数允许使用同一个类中的一个构造函数地啊哟用其他的构造函数,从而简化相关变量初始化。下面举例说明class test13{public: test13() {}; test13(int max) { this->m_max = max > 0 ? max : 100; } test13(int max, int min) :test13(max) { this->m_min = min > 0 &
2022-01-28 22:04:53 1098
原创 初学者的C++11学习:可调用对象及可调用对象包装器,绑定器
内容学习自:爱编程的大丙一、可调用对象先来了解一下什么是可调用对象,C++中一组执行任务的语句都可以视为一个函数,一个可调用对象。在程序设计的过程中,我们习惯于把那些具有复用性的一组语句抽象为函数,把变化的部分抽象为函数的参数。函数指针 operator()成员函数的类对象(仿函数) 可被转换为函数指针的类对象 类成员函数指针或者类成员指针struct Test{ // ()操作符重载 void operator()(string msg) {
2022-01-26 23:53:08 927 1
原创 初学者的C++11学习:基于范围的for循环
内容学习自:爱编程的大丙原作者:苏丙榅一、C++基于范围的for循环语法格式for(declaration : expression){//循环体}其中declaration便是遍历声明,原理是在遍历的过程中遍历到的元素会被储存到声明的变量中,expression是要便利的对象,它可以是表达式,容器,数据,初始化列表等。见下面这个例子:vector<int> vt{1,2,3,4,5,6};for(auto it = vt.begin();it!=vt.end
2022-01-23 16:42:40 839
原创 初学者的C++11学习:初始化列表和std::initializer_list容器
内容学习自:爱编程的大丙一、初始化列表与其他函数不同,构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表,初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段。初始化类的成员有两种方式,一是使用初始化列表,二是在构造函数体内进行赋值操作。那么为什么要使用初始化列表呢?主要是性能问题,对于内置类型,如int, float等,使用初始化类表和在构造函数体内初始化差别不是很大,但是对于类类型来说,最好使用初始化列表,为什么呢?因为使用初始化列表少了一次调用默认构造函数的过程,这对于数据
2022-01-21 21:16:39 955
原创 初学者的C++11学习:深入理解operator
一、初始化列表与其他函数不同,构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表,初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段。初始化类的成员有两种方式,一是使用初始化列表,二是在构造函数体内进行赋值操作。那么为什么要使用初始化列表呢?主要是性能问题,对于内置类型,如int, float等,使用初始化类表和在构造函数体内初始化差别不是很大,但是对于类类型来说,最好使用初始化列表,为什么呢?因为使用初始化列表少了一次调用默认构造函数的过程,这对于数据密集型的类来说,是非常高效的
2022-01-18 15:50:37 706
原创 初学者的C++11学习:默认模板参数和using的新用法
内容学习自:b站爱学习的大丙。本内容仅用作学习记录1.默认模板参数在C++98/03中,类模板可以有默认的模板参数,而在C++11中,参数类型也可以添加了默认的类型:template <typename T = int> // 98/03的会报错void func(T t){ cout<<"val ="<<t<<endl;}如果没有传就按照默认的输出:如果默认模板参数和模板参数自动推导同时使用时(优先级):(1)如果
2022-01-16 22:05:13 891
原创 初学者的C++11学习:final和override
内容学习自:b站爱学习的大丙。本内容仅用作学习记录1.finalC++增加了final关键字来限制某个虚函数不能继续被重写,类似java的final。final使用规则:1.1修饰函数只能修饰虚函数,使用时放在函数声明后。class test3 {public: virtual void test() { cout << "父类虚函数" << endl; }};class test4 :public test3 {public: void tes
2022-01-15 22:48:13 467
原创 初学者的C++11学习:auto和decltype
内容学习自,b站爱学习的大丙,CSDN Coco~567,CSDN weixin_396873591.在学习前先复习一下左值右值的概念用户:Coco_567:lvalues是指存在于单个表达式之外的对象。你可以把左值当成有名字的对象。所有的变量,包括常变量,都是左值。左值变量能取地址。rvalues是一个暂时存在的值存在于单个表达式之内的对象。有点拗口(难理解),通俗来说就是,左值的生存期不只是这句话,后面还能用到它。而右值呢,出了这句话就挂了,所以也叫(将亡值)。右.
2022-01-11 23:00:33 364
原创 初学者的C++11学习:constexpr修饰常量表达式
内容学习自b站:爱学习的大丙1.和const的区别const的双重语义:变量只读,修饰常量2.在C++11中添加了一个新的关键字constexpr,这个关键字是用来修饰常量表达式的。所谓常量表达式,指的就是由多个(>1〕常量(值不会改变)组成并且在编译过程中就得到计算结果的表达式.C++程序从编写完毕到执行分为四个阶段:预处理、编泽、汇编和链接四个阶段,得到可执行程序之后就可以运行了。常量表达式和非常量表达式的计算时机不同,非常量表达式只能在程序运行阶段计算出结果,但是常量表达式的计算
2022-01-10 22:06:54 875
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人