C++
文章平均质量分 73
ershiyidian
知之者不如好之者,好之者不如乐之者~~~
展开
-
计算程序运行时间---C++
一种统计程序运行时间的方法原创 2024-08-04 10:39:25 · 87 阅读 · 0 评论 -
C++面向对象进阶---类型转换运算符
对于本例中的情况①,pa 指向 A 类对象,根据该对象找到的就是 A 的类型信息,当程序从这个节点开始向上遍历时,发现 A 的上方没有要转换的 B 类型或 C 类型(实际上 A 的上方没有任何类型了),所以就转换败了。,如果找到了要转化的目标类型,那么说明这种转换是安全的,就能够转换成功,如果没有找到要转换的目标类型,那么说明这种转换存在较大的风险,就不能转换。向下转型是有风险的,dynamic_cast 会借助 RTTI 信息进行检测,确定安全的才能转换成功,否则就转换失败。原创 2024-07-28 15:59:01 · 777 阅读 · 0 评论 -
c++11 新特性 超级详细
/使用 auto 代替具体的类型return 0;auto 可以根据表达式 v.begin() 的类型(begin() 函数的返回值类型)来推导出变量 i 的类型。auto 虽然在书写格式上比 decltype 简单,但是它的推导规则复杂,有时候会改变表达式的原始类型;而 decltype 比较纯粹,它一般会坚持保留原始表达式的任何类型,让推导的结果更加原汁原味。从代码是否健壮的角度考虑,我推荐使用 decltype,它没有那么多是非;原创 2024-07-26 12:02:50 · 754 阅读 · 0 评论 -
c++ 面试题---sizeof和strlen的区别详解
一个std::string对象的大小是由它所包含的数据和信息的总大小来决定的,而不是它所表示的字符串的长度。sizeof(str)返回的是std::string对象在内存中占用的大小,而不是字符串"Hello World"的大小。对象的大小取决于其实现方式和编译器的实现细节,在不同的编译环境下,sizeof(string)的返回值可能会不同。原创 2024-07-24 17:24:57 · 361 阅读 · 0 评论 -
C++多文件编程(超级详细)
在实际多文件开发中,我们往往使用如下的宏定义来避免发生重复引入://头文件内容#endif其中,_NAME_H是宏的名称。需要注意的是,这里设置的宏名必须是独一无二的,不要和项目中其他宏的名称相同。当程序中第一次 #include 该文件时,由于 _NAME_H 尚未定义,所以会定义 _NAME_H 并执行“头文件内容”部分的代码;当发生多次 #include 时,因为前面已经定义了 _NAME_H,所以不会再重复执行“头文件内容”部分的代码。原创 2024-07-24 10:00:11 · 1266 阅读 · 0 评论 -
C++输入输出流
执行后会发现,控制台没有任何输出。cin 就是 istream 类的对象,cout 是 ostream 类的对象,它们都声明在 <iostream> 头文件中,这也解释了“为什么在 C++ 程序中引入。putchar() 函数是C语言中使用的,在 <stdio.h> 头文件中定义,C++保留了这个函数,在 <iostream> 头文件中定义。仍以前面创建好的 in.txt 文件为例,执行此程序后,控制台不会输出任何数据,而是会在该项目的目录下生成一个 out.txt 文件,其中就存有该程序的执行结果。原创 2024-07-23 11:57:51 · 1903 阅读 · 0 评论 -
堆数据访问快还是栈数据访问快?
回答:栈数据访问速度通常比堆数据访问速度快,因为栈的数据存储在,访问速度快且效率高。堆数据访问速度较慢,因为其数据存储在,需要额外的指针解引用操作。原创 2024-07-23 09:30:02 · 645 阅读 · 0 评论 -
从C到C++ 命名空间---函数重载---内联函数---混合编程
这是因为 C++ 取消了原来的限制,变量只要在使用之前定义好即可,不强制必须在函数开头定义所有变量。//在for循环的条件语句内部定义变量ii>n;return 0;运行结果:Total: 55在C语言中,动态分配内存用 malloc() 函数,释放内存用 free() 函数。//分配10个int型的内存空间free(p);//释放内存在C++原创 2024-07-20 10:17:32 · 1758 阅读 · 0 评论 -
排序算法---c++
使用起泡排序算法,其时间复杂度同实际表中数据的无序程度有关。若表中记录本身为正序存放,则整个排序过程只需进行 n-1(n 为表中记录的个数)次比较,且不需要移动记录;若表中记录为逆序存放(最坏的情况),则需要 n-1趟排序,进行 n(n-1)/2 次比较和数据的移动。所以该算法的时间复杂度为O(n2)。快速排序算法的时间复杂度为O(nlogn),是所有时间复杂度相同的排序方法中性能最好的排序算法。原创 2024-07-08 11:01:40 · 295 阅读 · 0 评论 -
C++异常处理(try catch)从入门到精通
程序的错误大致可以分为三种,分别是语法错误、逻辑错误和运行时错误:1)语法错误在编译和链接阶段就能发现,只有 100% 符合语法规则的代码才能生成可执行程序。语法错误是最容易发现、最容易定位、最容易排除的错误,程序员最不需要担心的就是这种错误。2)是说我们编写的代码思路有问题,不能够达到最终的目标,这种错误可以通过调试来解决。3)是指程序在运行期间发生的错误,例如除数为 0、内存分配失败、数组越界、文件不存在等。就是为解决运行时错误而引入的。原创 2024-07-07 10:45:40 · 1027 阅读 · 0 评论 -
存在重复元素Ⅱ
给你一个整数数组nums和一个整数k,判断数组中是否存在两个i和j,满足且。如果存在,返回true;否则,返回false。原创 2024-07-05 23:25:08 · 103 阅读 · 0 评论 -
C++模板和泛型程序设计
泛型程序设计(generic programming)是一种算法在的程序设计方法。所谓“泛型”,指的是算法只要实现一遍,就能适用于多种数据类型。泛型程序设计方法的优势在于能够减少重复代码的编写。泛型程序设计的概念最早出现于 1983 年的 Ada 语言,其最成功的应用就是 C++ 的。也可以说,泛型程序设计就是大量编写模板、使用模板的程序设计。泛型程序设计在 C++ 中的重要性和带来的好处不亚于面向对象的特性。在 C++ 中,模板分为函数模板和类模板两种。原创 2024-07-05 17:57:43 · 610 阅读 · 0 评论 -
c++ 八股文问题总结
C++中的重载和重写都是实现多态性的重要手段,但它们的侧重点和应用场景有所不同。重载主要是在同一个作用域内,提供多个同名函数的不同版本,以满足不同的参数需求或返回类型需求。重写则是在派生类中,提供对基类虚方法的定制化实现,以实现多态性和接口实现。在实际编程中,重载和重写都有广泛的应用。重载使得代码更加简洁和易于理解,因为它允许使用相同的函数名来处理不同的数据类型或数据数量。重写则允许派生类根据自身的需求来定制基类的方法行为,从而实现更加灵活和可扩展的程序设计。原创 2024-07-01 12:04:31 · 710 阅读 · 0 评论 -
DFS和BFS
【代码】DFS和BFS。原创 2024-06-26 11:19:06 · 137 阅读 · 0 评论 -
c++ 动态创建三维数组
使用new来实现,因为C++标准库并没有直接提供动态三维数组。原创 2024-06-24 15:53:16 · 465 阅读 · 0 评论 -
static_cast基本用法 c++
是 C++ 中四个命名强制类型转换操作符之一。它用于执行各种不同类型之间的转换。原创 2024-06-19 20:21:32 · 264 阅读 · 0 评论 -
ACM模式输入输出总结
常用输入输出原创 2024-06-18 20:34:03 · 506 阅读 · 0 评论 -
c++常用内置函数+STL常用算法(排序、合并、搜索和分区)
既可以是STL模板库中的迭代器,例如,也可以是普通的指针,例如int *。所有输入的迭代器,一般都是两个。其中(first指向第0个元素,last指向最后一个元素的后面)原创 2024-06-17 22:33:36 · 552 阅读 · 0 评论 -
lambda表达式
lambda表达式非常适合用作回调函数、临时函数对象或任何需要简短、一次性使用的函数的场合。lambda表达式的使用提高了代码的可读性和编写的便捷性。parameters:参数列表,和普通函数的参数列表一样,用于定义传递给lambda表达式的参数。capture_clause:捕获列表,定义了lambda表达式可以访问的外部变量及其访问方式。,那么就是外部的所有值都将以引用的方式进行捕获。中间有一个等号,这代表着外部的所有值都将以值的方式进行捕获。其中,按值捕获的外部变量是。[=]:按值捕获所有外部变量。原创 2024-06-16 09:29:17 · 211 阅读 · 0 评论 -
sort函数
下面介绍对于基本数据类型、结构体类型、STL容器进行自定义排序cmp的写法。原创 2024-06-15 22:16:33 · 211 阅读 · 0 评论 -
C++ STL关联式容器
考虑到“键值对”并不是普通类型数据,C++STL标准库提供了 pair 类模板,其专门用来将 2 个普通元素 first 和 second(可以是 C++ 基本数据类型、结构体、类自定的类型)创建成一个新元素。通过其构成的元素格式不难看出,使用 pair 类模板来创建“键值对”形式的元素,再合适不过。pair 类模板定义在<utility>头文件中,所以在使用该类模板之前,需引入此头文件。#1) 默认构造函数,即创建空的 pair 对象pair();原创 2024-06-15 09:35:05 · 808 阅读 · 0 评论 -
拓扑排序---解决具有依赖关系和多对多关系的问题
多对多的先后关系原创 2024-06-08 21:50:50 · 320 阅读 · 0 评论 -
STL容器适配器详解
STL容器适配器详解原创 2024-06-06 10:26:17 · 281 阅读 · 0 评论