随笔分类 -  C++学习

摘要:1.打开VS开发人员命令提示工具 2.定位至目标程序目录 使用cd .....命令 3.输入cl命令展示类的内存布局 cl /d1 reportSingleClassLayout类名 “文件名” 这里有一个小技巧,在输入文件名的时候,只需要输入一个首字母,之后按Tab即可自动补全 阅读全文
posted @ 2023-11-06 17:57 DawnTraveler 阅读(51) 评论(0) 推荐(0)
摘要:1.问题 在学习符号重载的过程中,有一个想法 std::ostream& operator<<(std::ostream &cout, Person &p); 中std::ostream &cout能不能不使用引用,而使用std::ostream cout? 但是报错:Call to deleted 阅读全文
posted @ 2023-11-04 21:49 DawnTraveler 阅读(45) 评论(0) 推荐(0)
摘要:1.概述 由于引用实际上是指向被引用变量的一个隐式指针,而局部变量在返回后就会被销毁,我指向的内容被销毁了,这个隐式指针也就成了野指针,导致错误 2.实例 错误写法 以下是我在运算符重载时使用引用作为局部变量返回值导致的问题: Person& operator+ (Person &t); { Per 阅读全文
posted @ 2023-11-04 21:37 DawnTraveler 阅读(33) 评论(0) 推荐(0)
摘要:1.参考链接:关于返回值的几种情况 2.思路 在一个函数的内部,return的时候返回的都是一个拷贝,不管是变量、对象还是指针都是返回拷贝,但是这个拷贝是浅拷贝。 如果返回一个基本类型的变量,比如: int a; a = 5; return a; 那么就会a的一个拷贝,即5返回,然后a就被销毁了。尽 阅读全文
posted @ 2023-11-04 21:24 DawnTraveler 阅读(58) 评论(0) 推荐(0)
摘要:C语言中文网学习链接 阅读全文
posted @ 2023-11-04 17:42 DawnTraveler 阅读(9) 评论(0) 推荐(0)
摘要:学习链接:https://www.runoob.com/cplusplus/cpp-strings.html 1.字符串常用函数 函数 目的 strcpy(s1, s2); 复制字符串 s2 到字符串 s1。 strcat(s1, s2); 连接字符串 s2 到字符串 s1 的末尾。连接字符串也可以 阅读全文
posted @ 2023-11-02 09:06 DawnTraveler 阅读(26) 评论(0) 推荐(0)
摘要:1.堆介绍 「堆 heap」是一种满足特定条件的完全二叉树,主要可分为图 8-1 所示的两种类型。 「大顶堆 max heap」:任意节点的值 其子节点的值。 「小顶堆 min heap」:任意节点的值 其子节点的值。 堆作为完全二叉树的一个特例,具有以下特性。 最底层节点靠左填充,其他层的节点都被 阅读全文
posted @ 2023-10-28 11:39 DawnTraveler 阅读(557) 评论(0) 推荐(0)
摘要:一、前言 list容器,又称为双向链表容器,即该容器的底层是以双向链表的形式实现的,因此list容器中的元素可以分散存储在内存空间里,而不是必须存储在一整块连续的内存空间中。 list容器中各个元素的前后顺序是靠指针维系的,每个元素都有两个指针,分别指向它的前一个元素和后一个元素。第一个元素的前向指 阅读全文
posted @ 2023-10-25 15:47 DawnTraveler 阅读(108) 评论(0) 推荐(0)
摘要:参考链接:https://www.runoob.com/w3cnote/cpp-vector-container-analysis.html 一、什么是vector? 向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。跟任意其它类型容器一样,它能够存放各 阅读全文
posted @ 2023-10-25 15:08 DawnTraveler 阅读(71) 评论(0) 推荐(0)
摘要:1.概论 C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作。vector封装数组,list封装了链表,map和set封装了二叉树等,在封装这些数据结构的时候,S 阅读全文
posted @ 2023-10-25 14:48 DawnTraveler 阅读(110) 评论(0) 推荐(0)
摘要:1.概要 std::istringstream 是 C++ 标准库中的一个类,它用于从字符串中提取数据,并将数据转换为不同的数据类型。它通常用于从字符串中解析数据,例如整数、浮点数等。以下是关于 std::istringstream 的详细用法: 创建 std::istringstream 对象: 阅读全文
posted @ 2023-10-21 21:00 DawnTraveler 阅读(1576) 评论(0) 推荐(0)
摘要:一.题目描述 二.题解 这里使用向量vector配合pair对可以轻松解决题目 代码 // // Created by trmbh on 2023-10-20. // #include<iostream> #include<vector> #include<cmath> void Read_Func 阅读全文
posted @ 2023-10-20 21:13 DawnTraveler 阅读(36) 评论(0) 推荐(0)
摘要:#1.先要生成相应文件 ![](https://img2023.cnblogs.com/blog/3017398/202308/3017398-20230801161607839-847911115.png) #2.打开VS2019开发人员工具 ![](https://img2023.cnblogs 阅读全文
posted @ 2023-08-01 16:22 DawnTraveler 阅读(25) 评论(0) 推荐(0)
摘要:#1.问题 C4996 'strdup': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _strdup. See online help for details 阅读全文
posted @ 2023-07-31 21:12 DawnTraveler 阅读(236) 评论(0) 推荐(0)
摘要:在这里初始化列表直接用age(age)即可,用this->age(age)反而会出错,C++不允许在成员初始化列表中使用this关键字来初始化类成员 ~~~C++ class Person { public: Person(int age) : age(age) {} // Initialize t 阅读全文
posted @ 2023-07-31 18:24 DawnTraveler 阅读(22) 评论(0) 推荐(0)
摘要:#1.问题 在单例模式中初始化单例对象Person* Person::signal= new Person; 这一步在类外,而new Person需要调用私有的无参构造,但是只有在类内部才能调用私有函数,这里是不是矛盾了? ~~~C++ #define _CRT_SECURE_NO_WARNINGS 阅读全文
posted @ 2023-07-30 16:37 DawnTraveler 阅读(14) 评论(0) 推荐(0)
摘要:1.当传递常量字符串给 char* 类型的形参时,C++ 编译器可能会发出警告,因为 char* 可以用于修改字符串内容。而使用 const char* 类型,则指示调用者不应该修改传入的字符串内容,从而避免了可能的副作用。 2.在构造函数中使用 const char* 参数类型还有一个优点,它可以 阅读全文
posted @ 2023-07-30 00:42 DawnTraveler 阅读(466) 评论(0) 推荐(0)
摘要:strlen 和 sizeof 是 C/C++ 中用于获取字符串长度或数据类型大小的两个不同的操作。 1.strlen: - strlen 是在 C 语言和 C++ 中用于获取以空字符 ('\0') 结尾的字符串长度的函数。 - 它接受一个指向字符串的指针,并遍历该字符串,直到遇到空字符为止,计算出 阅读全文
posted @ 2023-07-30 00:31 DawnTraveler 阅读(155) 评论(0) 推荐(0)
摘要:#1.问题如下: C4996:'strcpy’: This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use_CRT_SECURE_NO_WARNINGS. 阅读全文
posted @ 2023-07-29 15:55 DawnTraveler 阅读(917) 评论(0) 推荐(0)