![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
维多利亚港的风吹掉了我的假发
这个作者很懒,什么都没留下…
展开
-
【C++】手写String类
手写String类![在这里插入图片描述](https://img-blog.csdnimg.cn/20200921200357938.png#pic_center#include<iostream>#include<cstring>class String{private: int m_len; char* m_data;public: const int length() const; const char* c_str() cons原创 2020-09-22 08:28:52 · 198 阅读 · 0 评论 -
sort()原理
快速排序,结合插入排序和堆排序原创 2020-09-21 17:04:09 · 128 阅读 · 0 评论 -
C++ std::thread 中join()和detach()的区别
在声明一个std::thread对象之后,都可以使用detach和join函数来启动被调线程,区别在于两者是否阻塞主调线程。 (1)当使用join()函数时,主调线程阻塞,等待被调线程终止,然后主调线程回收被调线程资源,并继续运行; (2)当使用detach()函数时,主调线程继续运行,被调线程驻留后台运行,主调线程无法再取得该被调线程的控制权。当主调线程结束时,由运行时库负责清...原创 2019-11-12 01:07:49 · 1808 阅读 · 0 评论 -
C++ std::move
它实现了转移语义 (Move Sementics) 和精确传递 (Perfect Forwarding)。它的主要目的有两个方面:消除两个对象交互时不必要的对象拷贝,节省运算存储资源,提高效率;能够更简洁明确地定义泛型函数。 通俗的左值的定义就是非临时对象,那些可以在多条语句中使用的对象。所有的变量都满足这个定义,在多条代码中都可以使用,都是左值。右值是指临时的对象,它们只在当前的语句中有效。 在...原创 2019-11-12 02:28:11 · 109 阅读 · 0 评论 -
【C++】static、const、constexpr、全局变量、局部变量
const定义的常量在超出其作用域之后其空间会被释放,而static定义的静态常量在函数执行后不会释放其存储空间。 static static表示的是静态的。类的静态成员函数、静态成员变量是和类相关的,而不是和类的具体对象相关的。即使没有具体对象,也能调用类的静态成员函数和成员变量。一般类的静态函数几乎就是一个全局函数,只不过它的作用域限于包含它的文件中。在C++中,static静态成员变量不能在...原创 2020-03-19 06:26:13 · 4182 阅读 · 1 评论 -
C++多态、虚函数、纯虚函数、虚基类、抽象类、虚函数表
C++多态 C++的多态包括静态多态和动态多态。静态多态包括函数重载和泛型编程(函数模板和类模板),动态多态包括虚函数。静态多态是指在编译期绑定,动态多态是指运行时绑定。 虚函数 1、虚函数为类的非静态成员函数,访问权限一般为public。函数声明时,在返回值前加virtual关键字,函数定义时不需要加virtual。父类定义的虚函数,子类在继承时,可以对虚函数重新定义,当然子类的函数应该与父类虚...原创 2020-03-19 20:41:59 · 193 阅读 · 0 评论 -
【C++】Vector、Map、Set的原理
Vector Vector的数据安排以及操作方式,与array非常类似,两者唯一的区别是空间运用的灵活性,array是静态空间,一旦配置了就不能改变,如果你想要大一点的空间,就必须首先配置一块新空间,然后将原来的元素一一复制进来,再把原来的空间释放给系统。但是vector是动态空间,随着元素的增加,它的内部机制会自行扩充空间以容纳新元素,因此vector的运用对于内存的合理利用与运用的灵活...原创 2020-04-01 04:52:40 · 259 阅读 · 1 评论 -
【C++】char、int、short、指针占几个字节
常量的定义以及表示范围:unsigned int 0~4294967295 就是2^32-1int -2147483648~2147483647 就是-2^(31) ~ 2^31-1unsigne...原创 2020-04-02 08:01:32 · 7158 阅读 · 0 评论 -
【C++】xx和xx的区别与联系(持续更新)
指针和引用 https://blog.csdn.net/u010710458/article/details/79243256 new和malloc https://blog.csdn.net/nie19940803/article/details/76358673一个由C/C++编译的程序占用的内存分为以下几个部分: 栈区(stack)— 由编译器自动分配释放 ,存放为运行函数而分配的局部变量...原创 2020-04-13 07:39:23 · 621 阅读 · 0 评论 -
【C++】HashMap原理、与Map的区别
原理 哈希表最大的优点,就是把数据的存储和查找消耗的时间大大降低,几乎可以看成是常数时间;而代价仅仅是消耗比较多的内存。然而在当前可利用内存越来越多的情况下,用空间换时间的做法是值得的。另外,编码比较容易也是它的特点之一。 其基本原理是:使用一个下标范围比较大的数组来存储元素。可以设计一个函数(哈希函数,也叫做散列函数),使得每个元素的关键字都与一个函数值(即数组下标,hash值)相对应,于是用这...原创 2020-06-08 10:39:23 · 819 阅读 · 0 评论 -
C++ 深拷贝和浅拷贝
C++ 深拷贝和浅拷贝博客转载 2020-09-01 19:55:34 · 298 阅读 · 0 评论 -
Linux下C++开发常用工具
Linux下C++开发常用工具GDB查看内存:x(gdb调试时查看内存)设置断点:b定位有问题的动态库调试core文件gdb常用指令gdb工作原理Valgrind内存泄漏分析和性能检测原创 2020-09-02 09:59:52 · 149 阅读 · 0 评论 -
【C++】智能指针
shared ptr和unique ptr的区别原创 2020-09-07 10:58:03 · 155 阅读 · 0 评论