![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++笔记
xinwuya_
这个作者很懒,什么都没留下…
展开
-
C++笔记(1):C++内存分区
C++内存分区注:摘自《王道程序员求职宝典》。1. 堆由程序员手动分配和释放,完全不同于数据结构中的堆,分配方式类似链表。由malloc(C语言)或new(C++)来分配,free(C语言)和delete(C++)释放。若程序员不释放,程序结束时由系统释放。2. 栈由编译器自动分类和释放,存放函数的参数值、局部变量的值等。操作方式类似数据结构中的栈。3. 全局(静态)存储区存放全局变...原创 2019-04-22 00:23:07 · 160 阅读 · 0 评论 -
C++笔记(2):STL容器vector、list、deque、map、set、hashmap
STL容器vector、list、deque、map、set、hashmap(1) vector 向量相当于一个数组,占用一块连续的内存空间。优点:可以不指定内存大小。即可以像数组一样操作,且具有动态长度,主要体现在push_back()和pop_back();随机访问方便。支持下标操作符[]和vector.at();节省空间。每个位置仅保存值对象,没有其他内容(指针等)。...原创 2019-08-16 16:00:35 · 483 阅读 · 0 评论 -
C++笔记(3):new和malloc的区别
new和malloc的区别概述序号不同点new/deletemalloc/free1申请内存的位置自由存储区堆2内存分配成功时返回值返回对象类型的指针,无需进行类型转换返回的是void*,需要通过强制类型转换将void*转换成我们需要的类型3内存分配失败时返回值抛出bad_malloc异常,不会返回NULL返回NULL4分配内存的大...原创 2019-08-16 16:27:02 · 169 阅读 · 0 评论 -
C++笔记(4):构造函数中使用memset初始化this?
构造函数中使用memset初始化this?面试官:如果我想将一个类的成员变量都初始化为0,那么在构造函数中使用memset(this, 0, sizeof(T))是否可行?我:…不知道那么是否可行呢?我们来尝试一下#include <iostream>struct A{ A() = default; int a; char b;};class T{publ...原创 2019-08-17 01:13:05 · 1551 阅读 · 3 评论 -
C++笔记(5):关于sizeof运算符
关于sizeof运算符注:参考自《王道程序员求职宝典》。1. 关于sizeofsizeof是一个单目运算符,并不是一个函数。sizeof用来计算操作数在内存中所占的字节数。sizeof的计算发生在编译时,所以它可以被当作常量表达式使用,需要注意的是,它会忽略括号内的各种运算,如sizeof(a++);中的++就不会被执行。sizeof的返回类型为size_t,它被定义为unsigned i...原创 2019-08-27 16:01:12 · 1041 阅读 · 0 评论 -
C++笔记(6):异或的妙用
异或的妙用注:参考自《王道程序员求职宝典》。1. 异或按位异或(^)的运算规则为当两位相同时,则为0,不同时则为1。异或满足交换律:A^B^C^D^E^F^B=A^C^D^E^F。2.妙用方法2.1 寻找数成对出现时缺失的某一个数如有一组数A、B、C、D、A、C、B,则A^B^C^D^A^C^B=D。给你一个由n-1个整数组成的未排序的序列,其元素都是1到n中的不同的整数,...原创 2019-08-27 17:34:42 · 473 阅读 · 0 评论