- 博客(19)
- 收藏
- 关注
原创 C++位域
C 语言使用 unsigned int 作为位域的基本单位,文章以下均默认 unsigned int 为 32 Bits,1个位域结构体占据32位。type:位域成员的类型,
2023-05-01 01:39:23 139
原创 C++函数指针
函数指针:指向的是函数而非对象。声明一个指向函数的指针,只需要用指针替代函数名即可,如下:typedef可以用于定义函数指针类型,之后声明一个函数指针只需要用pf类型名:2、函数指针的使用2.1 定义当把函数名作为一个值使用,这个函数会自动地转换为指针,以下两种方式等价: 我们可以使用指向函数的指针调用该函数,无需解引用指针:
2023-04-30 16:36:41 42
原创 C++中的几种锁
通过构造std::mutex的实例创建互斥元,调用成员函数lock()来锁定它,调用unlock()来解锁,不过一般不推荐这种做法。它们的主要区别在于unique_lock锁机制更加灵活,可以再需要的时候进行lock或者unlock调用,不非得是析构或者构造时。unique_lock类模板,都是RAII风格,它们是在定义时获得锁,在析构时释放锁。标准C++库提供了std::lock_guard和。头文件:#include <mutex>
2023-04-22 21:18:17 280
原创 vector的构造函数
传参时,使用的就是浅拷贝,即形参是实参的一份临时拷贝。这往往是会出问题的,所以建议在使用vector作为参数时,尽量传引用。//指定元素个数和值。(3)构造函数传入两个参数,分别为一段序列的起始地址或迭代器和结束地址或迭代器。(4)拷贝构造函数,根据一个vector对象构建一个新的vector对象。,即元素值相同,地址空间不同,而在使用一个vector对象进行。或vector<int> v6 = v5;,指定元素个数,默认值为0。(1)默认构造,无需传参。
2023-04-22 20:49:42 2600
原创 【无标题】
空的类是会占用内存空间的,而且大小是1,原因是C++要求每个实例在内存中都有独一无二的地址。(一)类内部的成员变量:普通的变量:是要占用内存的,但是要注意对齐原则(这点和struct类型很相似)。static修饰的静态变量:不占用内容,原因是编译器将其放在全局变量区。(二)类内部的成员函数:普通函数:不占用内存。虚函数:要占用4个字节,用来指定虚函数的虚拟函数表的入口地址。所以一个类的虚函数所占用的地址是不变的,和虚函数的个数是没有关系的。
2023-04-16 17:13:10 61
原创 leetcode之二叉树
2022.2.15 leetcode刷题——树/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: TreeNo
2022-02-15 21:05:43 114
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人