
C++
爱学习的阿强
这个作者很懒,什么都没留下…
展开
-
C++ explicit 关键词作用
explicit关键字作用:防止构造函数中的隐式类型转换。原创 2022-09-28 09:45:47 · 244 阅读 · 0 评论 -
踩坑vector erase()
vector erase(),参数一定要是迭代器,指针也没有,所以想用erase()就得使用这种方式遍历vector<TreeNode*>::iterator it;for (it = buff.begin();it!=buff.end();it++)迭代器如果要使用得加*解引用原创 2021-01-14 16:12:08 · 173 阅读 · 0 评论 -
踩坑vector: 引发了未经处理的异常:读取访问权限冲突。 **_Pnext** 是 0x4。
在一段程序中,使用memset对vector进行了初始化,然后得到了错误的结果。找这个bug花费了很长时间。vector中有其自身的结构,不能单纯的按字节进行初始化。使用memset对vector进行初始化,会破坏vector中的结构,造成vector中的数据错误。我使用memset将vector中元素全部置为1,最终发现结果相差甚远。...原创 2021-01-14 16:06:47 · 3826 阅读 · 3 评论 -
C++ sort()
https://blog.youkuaiyun.com/xs18952904/article/details/81463822转载 2020-10-05 13:34:48 · 84 阅读 · 0 评论 -
unordered_map介绍
unordered_map是C++11提供的新容器。unordered_map和map的区别有:1.map不允许重复元素。unordered_map允许重复元素。2.map内部实现了红黑树,会对键名排序,查找的时间复杂度可达到O(logn)。 unordered_map内部实现了一个哈希表,查找的时间复杂度可达到O(1)。map优点:有序性,这是map结构最大的优点,其元素的有序性在很多应用中都会简化很多的操作红黑树,内部实现一个红黑书使得map的很多操作在lgn的时间复杂度下就可以实现,因此效原创 2020-10-05 13:18:37 · 2548 阅读 · 0 评论 -
C++11新特性之 常量表达式constexpr
https://blog.youkuaiyun.com/weixin_40087851/article/details/82754189转载 2020-09-30 09:01:22 · 136 阅读 · 0 评论 -
C++面试问题准备
实际上本人面试多家单位的C++软件工程师岗位,实际问到C++语法问题的很少。现在做纯C++的开发的岗位不多,除了上位机开发,其他基本上是嵌入式开发,做嵌入式别人更加关心的是硬件知识的了解,包括计算机网络、操作系统、ARM开发。我被问到的问题有这些:1、设计函数解决平面A、B、C三点共线?方法一:计算斜率;方法二:计算向量点乘是否等于膜乘积2、计算机通过什么操作硬件驱动3、问了一个局域网...原创 2020-03-19 12:53:58 · 486 阅读 · 1 评论 -
C++多态
多态是C++面向对象三大特性之一多态分为两类静态多态(重载): 函数重载 和 运算符重载属于静态多态,复用函数名动态多态(重写): 派生类和虚函数实现运行时多态静态多态和动态多态区别:静态多态的函数地址早绑定 - 编译阶段确定函数地址动态多态的函数地址晚绑定 - 运行阶段确定函数地址下面通过案例进行讲解多态class Animal{public: //Spea......原创 2020-02-27 16:27:47 · 186 阅读 · 0 评论 -
解决菱形继承的方法--虚继承
菱形继承概念: 两个派生类继承同一个基类 又有某个类同时继承者两个派生类 这种继承被称为菱形继承,或者钻石继承典型的菱形继承案例:菱形继承问题:羊继承了动物的数据,驼同样继承了动物的数据,当草泥马使用数据时,就会产生二义性。草泥马继承自动物的数据继承了两份,其实我们应该清楚,这份数据我们只需要一份就可以。简单来说,就是通过多条途径重复继承了基类中的成员,就是...原创 2020-02-27 11:55:08 · 1070 阅读 · 0 评论 -
C++静态成员
静态成员就是在成员变量和成员函数前加上关键字static,称为静态成员静态成员分为:静态成员变量所有对象共享同一份数据在编译阶段分配内存类内声明,类外初始化静态成员函数所有对象共享同一个函数静态成员函数只能访问静态成员变量...原创 2020-02-25 16:47:54 · 93 阅读 · 0 评论 -
C++类对象构造顺序
C++类对象构造是,如果有其他类对象作为本类成员时,构造时候先构造类对象,在构造自身.编译器运行到自身构造函数: 成员类(按顺序)->自身构造析构的函数调用与构造函数调用相反就vans了.#include<iostream>#include<string>using namespace std;class Phone {private: string ...原创 2020-02-25 16:28:32 · 813 阅读 · 0 评论 -
C++函数参数传递的三种方式
//1. 值传递void mySwap01(int a, int b) { int temp = a; a = b; b = temp;}//2. 地址传递void mySwap02(int* a, int* b) { int temp = *a; *a = *b; *b = temp;}//3. 引用传递void mySwap03(int& a, int&a...原创 2020-02-22 18:00:03 · 335 阅读 · 0 评论 -
C++内存分区模型
C++程序在执行时,将内存大方向划分为4个区域代码区:存放函数体的二进制代码,由操作系统进行管理的全局区:存放全局变量和静态变量以及常量栈区:由编译器自动分配释放, 存放函数的参数值,局部变量等堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收地址高低:栈区>堆区>全局区>代码区内存四区意义:不同区域存放的数据,赋予不同的生命周期, 给我们更大的灵活编...原创 2020-02-22 12:48:55 · 290 阅读 · 0 评论 -
c++ *和&的区别
*是声明指针 如:int *p 代表指向int 地址的指针。数据类型 * 指针名。&代表取地址,int a=1,&a代表去a的地址。函数void xxxx(int*p);调用的时候就要xxxx(&p);因为传进去的必须是一个地址。void deletePerson(Addressbooks* abs,string name) { int ret = isExist(...原创 2020-02-22 10:50:32 · 2853 阅读 · 0 评论