随笔分类 - C++
摘要:多态: 1.多态的概念 字面上理解:多种表现形式 专业术语:C++允许父类的指针或者父类引用指向不同的子类对象,通过这个指针或者引用去调用不同子类的同名方法——>叫做多态; 父类的同名函数在不同的子类中具有不同的表现形式——>叫做多态; 多态要解决的两个问题: 问题一:参数具有通用性 解决方法:C+
阅读全文
摘要:指针作为函数参数传递的一些问题总结: #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <iostream> #include <cstdlib> #include <cstring> using namespace std; v
阅读全文
摘要:void* malloc(size_t size); 其中参数size_t size表示动态内存分配空间的大小,以字节为单位。 size_t 是typedef重定义的类型,重定义这样数据类型的作用就是让使用者一目了然,指示使用者这个参数表示一个长度,在size后加上t,表示是整型相关数据类型的, 以
阅读全文
摘要:本质 引用是别名,指针是地址 具体分析 从现象上:指针运行的时候可以改变其所指向的值,而引用一旦和某个对象绑定之后就不再改变。指针可以重新被赋值以指向另外一个不同的对象。 但是引用则是总是指向在初始化时被指定的对象,以后不能改变,但是其指定对象的内容可以改变。 从内存分配上:程序未指针变量分配内存区
阅读全文
摘要:set::find搜索二叉树特性查找,时间复杂度为O(logN) 对比std::find std::find为暴力查找,时间复杂度为O(N)
阅读全文
摘要:相同点 push_back()与emplace_back()都是往尾部添加一个元素 不同点 底层实现机制不同: push_back()向容器尾部添加元素时,首先会创建这个元素,然后再将这个元素拷贝或者移动到容器中(如果拷贝的话,事后会自行销毁先前创建的这个元素) emplace_back()在实现的
阅读全文
摘要:1.基于范围的for循环的基本语法 在C++11中,为for循环添加了一个container(容器),它就会自动迭代;实现了对于vector型变量vec的内容打印,变量i遍历vector中的每一个元素, 直到vector的结束。 示例: vector<int> vec; //定义一个vector型变
阅读全文
摘要:i++是指先使用i,使用之后再将i的值加一 ++i是先将i的值加1,然后再使用
阅读全文
摘要:1. vector的初始化方式 vectora(10);定义10个整形元素的向量(每个元素的初值为0) vectora(10,1);定义10个整形元素的向量(每个元素的初值为1) vectora(b);用b向量创建a向量,整体复制性赋值 vectora(b.begin(),b.begin()+3);
阅读全文
摘要:当创建对象时,自动调用构造函数,构造函数名字与类名相同,没有返回类型和返回值 一、构造函数作用 1.给对象一个标识符 2.为数据成员开辟内存空间 3.完成数据成员的初始化工作(函数体内的工作,由程序员完成) 二、构造函数分类 构造函数分为有参构造和无参构造,并且构造函数支持重载,其中构造函数重载,在
阅读全文
摘要:C++ 中返回值为指针或者引用的时候,不可以返回局部变量的指针或者引用,因为当此段代码块执行完之后,相应的局部变量, 就会被系统释放,指针所指向的那块内存会被操作系统用来做其他事情,当使用该指针就会报错; 错误示例 int* aa() { int a = 666; return &a; } int
阅读全文