随笔分类 -  C++

摘要:类模板:template <class T1, class T2> struct pair 参数:T1是第一个值的数据类型,T2是第二个值的数据类型。 功能:pair将一对值组合成一个值,这一对值可以具有不同的数据类型(T1和T2),两个值可以分别用pair的两个公有函数first和second访问 阅读全文
posted @ 2020-12-21 14:37 xiuzhublog 阅读(265) 评论(0) 推荐(0) 编辑
摘要:1,map简介 map是STL的一个关联容器,它提供一对一的hash。 第一个可以称为关键字(key),每个关键字只能在map中出现一次;第二个可能称为该关键字的值(value); map以模板(泛型)方式实现,可以存储任意类型的数据,包括使用者自定义的数据类型。Map主要用于资料一对一映射(one 阅读全文
posted @ 2020-12-17 13:48 xiuzhublog 阅读(446) 评论(0) 推荐(0) 编辑
摘要:转载于https://www.cnblogs.com/qiubole/archive/2008/03/07/1094770.html [导语] 内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++ 阅读全文
posted @ 2020-12-08 13:51 xiuzhublog 阅读(207) 评论(0) 推荐(0) 编辑
摘要:一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。 阅读全文
posted @ 2020-11-27 09:31 xiuzhublog 阅读(674) 评论(0) 推荐(0) 编辑
摘要:下面用通俗易懂的话来概述一下: 指针-对于一个类型T,T*就是指向T的指针类型,也即一个T*类型的变量能够保存一个T对象的地址,而类型T是可以加一些限定词的,如const、volatile等等。见下图,所示指针的含义: 引用-引用是一个对象的别名,主要用于函数参数和返回值类型,符号X&表示X类型的引 阅读全文
posted @ 2020-11-27 08:48 xiuzhublog 阅读(354) 评论(0) 推荐(0) 编辑
摘要:一个结构体变量定义完之后,其在内存中的存储并不等于其所包含元素的宽度之和。 例一: #include <iostream> using namespace std; struct X { char a; int b; double c; }S1; void main() { cout << size 阅读全文
posted @ 2020-11-24 10:40 xiuzhublog 阅读(537) 评论(0) 推荐(1) 编辑
摘要:https://zh-google-styleguide.readthedocs.io/en/latest/google-cpp-styleguide/contents/ 阅读全文
posted @ 2020-11-02 15:25 xiuzhublog 阅读(321) 评论(0) 推荐(0) 编辑
摘要:https://www.cnblogs.com/qingergege/p/6882107.html 阅读全文
posted @ 2020-10-27 11:15 xiuzhublog 阅读(121) 评论(0) 推荐(0) 编辑
摘要:https://blog.csdn.net/superhoy/article/details/53504472 定义一种类型的新别名,并不是类似宏的简单的字符串替换。 typedef在t语法上是一个存储类的关键字(如auto、extern、mutable、static、register等一样),虽然 阅读全文
posted @ 2020-10-23 09:38 xiuzhublog 阅读(84) 评论(0) 推荐(0) 编辑
摘要:在 C++ 中,你也许经常使用 new 和 delete 来动态申请和释放内存,但你可曾想过以下问题呢? new 和 delete 是函数吗?new [] 和 delete [] 又是什么?什么时候用它们?你知道 operator new 和 operator delete 吗?为什么 new [] 阅读全文
posted @ 2020-10-18 22:36 xiuzhublog 阅读(142) 评论(0) 推荐(0) 编辑
摘要:warning: Source file is more recent than executable. 这个错误的原因是你的源文件已经被修改了, 但正在运行的程序是基于一个较早版本的源代码. 可能会导致gdb调试运行与现有源代码逻辑不一致。需要重新编译一下程序。 阅读全文
posted @ 2020-09-29 08:44 xiuzhublog 阅读(945) 评论(0) 推荐(0) 编辑
摘要:总述: c++结构体指针,顾名思义就是指向结构体的一个指针,这篇博客作用是记录c++结构体指针的常用用法及我经常犯的一个错误。 定义结构体: struct My{ My *left; My *right; int val; My(){} My(int val):left(NULL),right(NU 阅读全文
posted @ 2020-09-28 15:25 xiuzhublog 阅读(2864) 评论(0) 推荐(1) 编辑
摘要:概述 C/C++语言之所以强大,以及其自由性,很大部分体现在其灵活的指针运用上。因此,说指针是C/C++语言的灵魂一点都不为过。 有好的一面,必然会有坏的一面,指针的灵活导致了它的难以控制,所以C/C++程序员的很多bug是基于指针问题上的。今天就对指针进行详细的整理。 1、指针是什么? 指针是“指 阅读全文
posted @ 2020-09-26 10:43 xiuzhublog 阅读(1992) 评论(0) 推荐(0) 编辑
摘要:转自:https://www.cnblogs.com/yedushusheng/p/5524043.html 代码: Student a; s.setName("A"); //Studeng b = new Student(); Student b; b = new Student(); b->se 阅读全文
posted @ 2020-09-26 10:19 xiuzhublog 阅读(866) 评论(0) 推荐(0) 编辑
摘要:一个指向 C++ 类的指针与指向结构的指针类似,访问指向类的指针的成员,需要使用成员访问运算符 →,就像访问指向结构的指针一样。与所有的指针一样,您必须在使用指针之前,对指针进行初始化。 下面的实例有助于更好地理解指向类的指针的概念: #include <iostream> using namesp 阅读全文
posted @ 2020-09-26 10:15 xiuzhublog 阅读(455) 评论(0) 推荐(0) 编辑
摘要:调试解决程序的漏洞,是程序员最基本的技能之一。用惯了图形化IDE,在目前使用gtest框架进行单元测试,需要通过xshell远程连接Linux虚拟机进行C++代码的调试时,觉得很不适应。经过几天查资料,和实践,找到了几种简单方便的调试方法。 1.gdb GDB 是GNU开源组织发布的一个强大的UNI 阅读全文
posted @ 2020-09-24 16:44 xiuzhublog 阅读(961) 评论(0) 推荐(1) 编辑
摘要:定义 关于回调函数的定义,网上有很多的说法,大多都是通过实际的生活场景来类比,可是感觉描述的很像异步操作。 其实简单来说,假设有A、B、C三个函数。函数A调用函数B的时候,函数A通过参数给函数B传递了函数C的指针,在函数B执行的过程中,函数B调用了函数C,这个动作就叫做回调(Callback),而先 阅读全文
posted @ 2020-09-23 15:37 xiuzhublog 阅读(221) 评论(0) 推荐(0) 编辑
摘要:概述 C/C++语言之所以强大,以及其自由性,很大部分体现在其灵活的指针运用上。因此,说指针是C/C++语言的灵魂一点都不为过。 有好的一面,必然会有坏的一面,指针的灵活导致了它的难以控制,所以C/C++程序员的很多bug是基于指针问题上的。今天就对指针进行详细的整理。 1、指针是什么? 指针是“指 阅读全文
posted @ 2020-09-23 14:40 xiuzhublog 阅读(592) 评论(0) 推荐(0) 编辑
摘要:前言:复杂类型说明 要了解指针,多多少少会出现一些比较复杂的类型,所以我先介绍一下如何完全理解一个复杂类型,要理解复杂类型其实很简单,一个类型里会出现很多运算符,他们也像普通的表达式一样,有优先级,其优先级和运算优先级一样,所以我总结了一下其原则:从变量名处起,根据运算符优先级结合,一步一步分析.下 阅读全文
posted @ 2020-09-23 14:10 xiuzhublog 阅读(197) 评论(0) 推荐(0) 编辑
摘要:第一、四个用途 用途一: 定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, // 和一个字符变量;以下则可行:typedef char* PCHAR; // 一般用大写PCH 阅读全文
posted @ 2020-09-23 10:12 xiuzhublog 阅读(267) 评论(0) 推荐(0) 编辑