![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
hellozmz
搜索后台开发程序员
展开
-
cpp关键字
必须掌握 const 指针 函数 变量 返回值 class 成员 函数 static 面向过程 隐藏 延长生命周期 初始化 面向对象...原创 2020-05-08 08:36:44 · 450 阅读 · 0 评论 -
c++只在堆和只在栈上创建对象
首先,分享一篇讲解的很详细的文章:https://blog.csdn.net/hxz_qlh/article/details/13135433其次,说下这里面涉及到的一些基础知识:c++的内存分配,类的成员函数的访问修饰符。对象在内存中可以存储在堆上也可以存储在栈上。静态建立的对象在栈上,好处是栈空间的申请效率高(编译器有直接处理的指令),操作系统会帮助管理变量的内存,当超出作用域后会被直...原创 2019-10-02 15:13:24 · 561 阅读 · 0 评论 -
c++内存布局
写好了代码只是第一步,接下来还需要编译生成对应的二进制才能使用(预处理,编译,汇编,链接)。那么在运行的时候,代码和数据在内存中都是怎么分布的呢?c的内存布局是怎样的呢?c++的内存布局是怎样的呢?有一点值得注意,C语言和C++的内存布局是不一样的,这也就是平日里搜索c++内存布局的文章内容总是很相似但还不相同的原因,有些人没有对比清楚两者区别!我以前也是这样的。C内存布局c语...原创 2019-10-03 20:25:11 · 215 阅读 · 0 评论 -
C++Linux后台开发
C++基础知识 C++内存布局 多态与函数重载 指针与智能指针 static关键字 const关键字 extern关键字 gdb的常用命令 stl库中常用数据结构和算法 操作系统知识 进程与线程 协程 锁 消息队列(kafka的基本知识) 数据库(mysql与redis基本知识) 网络协议(socket的基本使用) TCP和UDP区别...原创 2019-10-05 17:58:46 · 325 阅读 · 1 评论 -
gdb的常用命令
当代码写好了并在Linux上运行的时候,有的时候程序会崩溃,比如数组越界、除0、访问了野指针等。这就需要查找程序中的bug,使用gdb是一个比较好的方法。对一个二进制进行调试的时候,执行`gdb bin`就可以了,bin代表要测试的二进制,如果是要调试core文件,执行`gdb bin corefile`core file是程序coredump时候将内存dump到磁盘上的文件,这样就可以快速的...原创 2019-10-05 20:44:49 · 243 阅读 · 0 评论 -
【LeetCode】深度优先搜索
简单的深度优先搜索二叉树的最大深度二叉树的最小深度回溯算法括号匹配原创 2019-10-06 21:28:09 · 128 阅读 · 0 评论 -
【LeetCode】广度优先遍历
二叉树的层序遍历原创 2019-10-06 21:29:12 · 97 阅读 · 0 评论 -
【LeetCode】动态规划
爬梯子零钱原创 2019-10-07 16:19:14 · 124 阅读 · 0 评论 -
【LeetCode】回溯法
N皇后问题原创 2019-10-07 16:22:29 · 84 阅读 · 0 评论 -
c++知识点总结
c++有继承和派生的概念,c++还有构造函数和析构函数的定义,这两者之间组合起来有些问题需要注意下。 派生类中的构造函数需要显式的去掉用基类的构造函数,并进行赋值初始化操作; 基类中的析构函数需要设定成虚函数,这样派生类中的函数才会被真正的调用到,否则会出现派生类中的析构函数没有被调用,导致内存泄漏 const关键字 修饰变量的时候,变量被设定成常量,不能被修改。数据被存储在常量区...原创 2019-10-08 23:30:02 · 171 阅读 · 0 评论 -
c++回调函数和函数指针
函数指针真正的含义是函数的指针,即指向一个函数的指针。注意,函数指针是指向函数的指针,而不是返回一个指定类型的指针;返回一个指定类型的指针的函数叫做指针函数。函数指针的样子是void (*test)(...)的;指针函数的样子是void *test(...)(需要仔细的看test前面的*是否被()包住)。函数指针是实现一个回调函数的必要条件。函数指针代表的是一个函数的指针,将实现某一个功能...原创 2019-10-01 18:39:41 · 140 阅读 · 0 评论 -
cpp 语法相关
函数中传递参数,可以有基本的按值传递,也可以传递一些引用。传递左值的声明 "&",为了和传递右值进行区分,右值的表示符号是"&&"参考文章:https://www.ibm.com/developerworks/cn/aix/library/1307_lisl_c11/index.html...原创 2019-07-30 21:48:42 · 207 阅读 · 0 评论 -
cpp class中使用线程
std 中有thread库,可以直接使用。如果线程的函数是一个成员函数,需要在thread中加入this变量,如:thread th (&testclass::th_fun, this, args...);原创 2019-06-27 09:44:17 · 331 阅读 · 0 评论 -
剑指Offer——从尾到头打印链表——C++
从尾到头打印链表题目描述输入一个链表,从尾到头打印链表每个节点的值。思路:直接打印就好了/*** struct ListNode {* int val;* struct ListNode *next;* ListNode(int x) :* val(x), next(NUL原创 2016-11-25 10:38:56 · 586 阅读 · 0 评论 -
剑指Offer——二维数组中的查找——C++
二维数组中的查找题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路:遍历数组,得到ansclass Solution {public: bool Find(vectorint> > array,inttarge原创 2016-11-25 10:26:49 · 446 阅读 · 0 评论 -
剑指Offer——重建二叉树——C++
重建二叉树题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。思路:根据前序第一个字符是根的特性,再在中序中找到这个位置,分开,左边的是左子树,右边的是右子树。然后递归求出结果。原创 2016-11-25 10:52:45 · 3511 阅读 · 6 评论 -
int ,long , long long, __int64等类型的范围(网上搜集)
unsigned int 0~4294967295 int 2147483648~2147483647 unsigned long 0~4294967295long 2147483648~2147483647long long的最大值:9223372036854775807long long的最小值:-9223372036854775808unsigned long long的...转载 2018-07-12 13:35:11 · 2148 阅读 · 0 评论 -
关于C与C++效率的问题
在九度OJ中,1061试题上,分别用C和C++风格来实现了一遍。下面贴出代码:C风格:#include#include#includeusing namespace std;struct student{ charname[110]; intage; intscore; boolop原创 2018-07-12 13:37:12 · 2189 阅读 · 1 评论 -
c++类型转换
简单总结下:1.static_cast =c中的强转,fload a = (float) 1;不保证安全性2.const_cast 去const3.dynamic_cast 子类到基类的转换顺畅而自然,反过来的话,编译没问题,运行时候可能出现运行时错误参考https://blog.csdn.net/ydar95/article/details/698225404.reinter...原创 2019-03-23 17:11:23 · 66 阅读 · 0 评论 -
c++变量定义
c++中变量有三个阶段:声明、定义和初始化。https://www.runoob.com/cplusplus/cpp-variable-types.html#include <iostream>using namespace std; // 变量声明extern int a, b;extern int c;extern float f; int main ()...原创 2019-05-06 23:57:09 · 1225 阅读 · 0 评论 -
c++回调函数直观解释
函数指针与回调函数首先,函数指针是指向一个函数的指针变量,就是一个指针,不过指向的内容是函数。其次,回调函数是函数指针作为某个函数的参数。因此可以通过回调函数指针的方式去触发回调的操作。知乎上有一个形象的例子:你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话,过了几天店里有货了,店员就打了你的电话,然后你接到电话后就到店里去取了货。在这个例子里,你的电话号码...原创 2019-05-16 09:06:26 · 168 阅读 · 0 评论 -
cpp map 中存放class
注意,需要实现一个无参的构造函数,否则编译无法通过原创 2019-06-27 09:37:17 · 1107 阅读 · 0 评论 -
剑指Offer——替换空格——C++
替换空格题目描述请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。思路:记录空格个数,然后从后向前赋值,遇见空格替换成%20//length为牛客系统规定字符串输出的最大长度,固定为一个常数class Solution {public:原创 2016-11-25 10:34:13 · 678 阅读 · 0 评论