日常
文章平均质量分 64
whitenpc
这个作者很懒,什么都没留下…
展开
-
八股文(四)
各种关键字const1首先知道const修饰符用来定义常量,具有不可变性 。2然后还有引申出底层const和顶层const的概念,指针本身是个常量,指向的对象是常量,这样就有了顶层指针和底层指针的概念。顶层的const表示的是指针本身无法被修改位置,只能指向这个对象,底层的const表示的是指针指的对象是是常量,无法被修改值。int i = 0;int *const p1 = &i; // 不能改变p1的值,这是一个顶层constconst int ci = 42; // 不能改变原创 2022-05-03 21:04:57 · 2183 阅读 · 0 评论 -
八股文(三)
几个关键字const_cast作用是去掉const,这个const_cast用来去除string类型的const然后再修改string值输出的时候输出的是修改后的值,但是如果去除了int类型的const再修改int值,输出的仍是修改前的值,这里其实int底层内存已经被修改了,但是字符表存放的仍然保存的是以前的值。换成高级的说法就是,只能改变对象的底层const(顶层const,本身是const,底层const,指向对象const)。const_cast且只能用于指针或引用,因为只有通过这两个才能修改原创 2022-05-02 21:34:01 · 190 阅读 · 0 评论 -
八股文(二)
C++内存模型C++内存分为5个区域:堆 heap :由new分配的内存块,其释放编译器不去管,由我们程序自己控制(一个new对应一个delete)。如果程序员没有释放掉,在程序结束时OS会自动回收。可能存在的问题是“缓冲区溢出”、“内存泄露”栈 stack :是那些编译器在需要时分配,在不需要时自动清除的存储区。存放局部变量、函数参数。存放在栈中的数据只在当前函数及下一层函数中有效,一旦函数返回了,这些数据也就自动释放了。全局/静态存储区 (.bss段和.data段) :全局和静态变量被原创 2022-05-01 17:00:14 · 294 阅读 · 0 评论 -
八股文(一)
虚函数首先,有一个概念叫做虚函数表,虚函数表和虚函数的关系是当一个类在实现的时候,如果存在一个或以上的虚函数时,那么这个类便会包含一张虚函数表。而当一个子类继承并重写了基类的虚函数时,它也会有自己的一张虚函数表,也叫Virtual Table,这个表的功能是解决了继承和覆盖的问题(像下图中的g函数就被覆盖了)。产生虚函数表的时期是当一个类中至少存在一个虚函数的时候在编译期间就会生成虚函数表。在虚函数表中,也就是这个伪代码中的成员变量被称作虚函数表指针,virtual table pointer..原创 2022-04-30 17:09:00 · 803 阅读 · 0 评论 -
【无标题】
洛谷这道题少考虑了约分的情况,加个函数就行了,可以辗转相除,也可也用递归的方法,不过VS17好像不支持使用__gcd函数 。递归求最大公约数的方法int fun(int m, int n) { if (n == 0) return m; return fun(n, m%n);}也给了个提醒,以后测试数据的时候多测试一下特殊的数据。第二题刚开始思路错了,想着从周数角度出发,但没必要分得那么复杂,直接把6,7拿掉后,新一周从0 开始计算就行了#include<.原创 2022-04-29 10:05:59 · 88 阅读 · 0 评论 -
【无标题】
遍历任意参数,也就是 遍历...的方法#pragma once#include<iostream>using namespace std;template<typename T>void printarg(T &arg) { cout << arg;}template<typename ...Pramtype>void Func(Pramtype &...Param) { /*char arr[] = { (原创 2022-04-28 16:33:08 · 71 阅读 · 0 评论 -
4.26c++
今天碰到了个泛化和特化,偏特化几个概念特化,就是只让某个类型的通过,偏特化,让某种类型优先通过,泛化就是模板的意思下面这个例子就是一个类的偏特化,优先走第二个类的定义//头文件里class DefaultAllocator {};class MyAnotherAllocator {};template <typename T, typename Allocator_T>class MyVector {public: MyVector() { std::原创 2022-04-27 09:50:15 · 101 阅读 · 0 评论 -
4.25C++
函数单列什么是单列,单列是设计模式中的一种主要用途是保证在整个程序中,指定的对象只创建一次,用到的始终都是同一个对象。保证只要这个实列。下面就是个单列案列,get()这个函数传进来,如果Instance有值了就直接返回,如果没有就重建,保证始终是一个对象下面创建了一个单列...原创 2022-04-25 21:34:54 · 906 阅读 · 0 评论 -
4.24c++
C++部分cpp就是把C++和.h头文件放到一起的一个东西。也是方便解决模板的问题,写在同一个下面,调。调用类模板里的函数的时候,如果声明函数和函数的实现写在两个文件下,就会报错这里继承关系,如果继承的父类是个模板类,则在继承的时候要写出自己的接收类型...原创 2022-04-24 22:39:01 · 643 阅读 · 0 评论 -
【无标题】
今天学习模板之所要要使用到模板是因为,如果像下面这样每次来创建一个类然后存放不同类的化,还要放不同数据类型的数据的化,就会很麻烦,维护起来也很麻烦那如果使用了容器,则会变得很简单,每次要变换成不同类型的容器,只需修改容器存放的类型------------------------先来做了一下洛谷的这道题首先犯了一个错,就是没有审题清楚,刚开始改了几次。然后就是后面打点进行测试的时候才发现了问题,输入它要求输入一个数量,一个价格,我写成一下子把三个数量值都先输入了。这道题更简洁的是直接使用.原创 2022-04-23 22:17:02 · 170 阅读 · 0 评论