
C++
文章平均质量分 94
C++学习的心得
正义的伙伴啊
生活近看虽像悲剧,远看则是喜剧
展开
-
Linux 时间系统调用
众所周知不同国家都是有时差的,那么比方说北京时间是如何计算出来的呢?首先UTC(世界协调时) 是一个基准,在这个基准上我们根据经纬度 划分出不同的时区,如果我们想得到本地时间 只要用标准时间加上该地区所在时区的偏移量。现在我们已经知道了如何获取时间,但是现在又有一个问题,存储的秒数 虽然精确但是不是很易读,如何让这些时间变得易读就要用到接下来的系统调用。举一个简单的例子: 北京时间在东八区时区,意味着北京时间比基准时间快8个小时(偏移量),而这个标准时间就是。t1 和 t2 得到的结果是一样的。原创 2024-03-17 21:55:18 · 641 阅读 · 0 评论 -
再看const成员函数
关于函数重载实际上我理解不是很深入,直接导致const成员函数这块出大问题,在阅读《effective C++》后才恍然大悟,做如下学习记录。原创 2023-06-07 15:01:08 · 710 阅读 · 6 评论 -
特殊类设计(单例模式)
今天忙活了一天写了一个线程池,写完我才发现单例模式的重要性🤗,做如下学习记录。原创 2023-04-09 21:03:16 · 497 阅读 · 3 评论 -
C++11 新特性
C++11 新特性、初始化列表、Lambda表达式、包装器、绑定原创 2023-03-22 21:30:50 · 703 阅读 · 3 评论 -
右值和右值引用(C++11新特性)
右值引用:对右值的引用左值引用:对左值的引用右值VS右值引用和左值VS左值引用//左值 和 右值 int a1 = 1;//右值引用 int && r1 = 10;//左值引用 int & l1 = a1;注意右值是不可以取地址,但是右值引用是可以取地址,因为给右值取别名之后必然会存储到特定位置,也就是说右值引用是左值!📌左值引用既可以引用左值也可以引用右值——引用右值可以使用右值引用只能引用右值,不能引用左值右值引用可以引用move之后的左值。原创 2023-03-16 20:50:11 · 776 阅读 · 2 评论 -
map和set 的封装
这些问题在没有学习map和set之前并没有很好的解决方法(但是map和set并不是唯一的解决方法),第二个问题:之前我们解决的方法一般就开辟一个新数组tmp,遍历arr中所有元素,对于arr中任意元素遍历tmp数组如果元素在tmp中未出现就插入。这时就会报错,因为是非const对象,调用的begin是非const成员函数,返回的是普通迭代器,所以报错的原因是缺乏普通迭代器到const迭代器的转化!我们对于map和set封装始终是在红黑树的基础上进行封装的,红黑树的代码可以参考blog。原创 2023-03-03 16:48:48 · 943 阅读 · 2 评论 -
类的 多态
多态的概念多态:通俗的来说就是多种形态,对于不同的情况,会产生不同的状态举个例子:例如车站的卖票系统,对于学生、普通市民和军人三类人的卖票政策是完全不同的,例如:对于普通市民是全家买票、对于学生是半价买票、对于军人是全价买票,排队优先。但是这三种角色中又有继承关系,所以这里就可以用到类的多态,通过虚函数完成不同角色同一函数实现不同功能。多态的条件被调用的必须是虚函数,子类必须重写父类的虚函数必须通过基类的指针或者引用调用虚函数...原创 2023-02-06 18:18:57 · 1820 阅读 · 3 评论 -
C++模板
文章目录C++模板函数模板函数模板的实例化类模板C++模板函数模板前面学过了函数重载,对一个功能我们可以实现不同数据类型的函数重载,给我们编译代码节省了不少麻烦,但是函数重载对于 泛型编程 来说,还是不够高效,因为每次传入的函数类型不同就要重新写一个函数重载。所以就出现了函数模板这种东西,让编译器来完成生成不同数据类型的函数的构建。函数模板的概念:函数模板代表了一个函数家族,该函数模板与类型无关,在使用时被参数化,根据实参类型产生函数的特定类型版本定义函数模板的格式template<ty原创 2023-01-04 10:56:29 · 550 阅读 · 3 评论 -
测绘程序设计大作业——TIN三角网生成+等高线生成
文章目录测绘程序设计大作业——TIN三角网生成+等高线生成图形库的选取数据的读取Delaunay三角网的递归生成算法什么是Delaunay三角网空接外接圆准则张角最大准则如何生成数据结构的定义递归生成算法空接外接圆准则张角最大准则对递归生成的改进测绘程序设计大作业——TIN三角网生成+等高线生成学校布置的测绘程序设计大作业,花了一个星期从算法学习到数据结构设计完成到最后出成果,虽然以后不搞测绘,但是还是记录一下在学习过程中的心得。图形库的选取测绘的最终目的在我看来是将数据可视化,所以选取一个更加直观原创 2022-04-09 17:26:14 · 7754 阅读 · 19 评论 -
C++类的继承
继承的概念和定义概念我们知道C++是一个面向对象的语言,继承是面向对象程序设计使代码可以复用的最重要的手段,使在逻辑上是继承关系的对象在用类来描述对象语言层面实现了代码复用,这样产生的新的类叫做派生类例如用学生系统来举例图中的学生管理系统建立了四个类用来描述 人、学生、老师、助教,但是我们发现学生、助教、老师这三个类都有人这个类的属性,在这个属性上才会多出来一些不同的特征,例如学生可能会有学号、班级…,于是学生从人继承部分属性就是类中的继承,人这个类叫做 父类 或者 基类 ,学生这个类别叫做 子类原创 2022-02-07 21:01:22 · 2239 阅读 · 7 评论 -
C++内存管理
文章目录C++内存管理C++内存分布(四大内存分区)C语言中内存管理的方式C++中内存管理的方式operator new和operator deletenew和delete的实现原理定位new表达式C++内存管理C++内存分布(四大内存分区)下面依次简单的介绍一下各个分区:栈:主要存储函数参数,局部变量,栈区的大小实际上大概只有8M堆:存储动态开辟的变量,堆的大小比栈大多了,所以一些较大的数据一般都存在堆上面数据段:存储全局变量,静态变量代码段: 存储可执行代码、只读常量(例如字符常量)原创 2022-01-24 10:55:35 · 688 阅读 · 7 评论 -
迭代器的学习心得
迭代器的学习心得这段时间学习STL实现自己的STL时第一次接触迭代器,学起来有些痛苦,下面来记录一下我的学习心得,理解有些浅薄首先我们要了解 ——泛型编程学完类之后给我的感觉是: C++将一个 概念 抽象成一个类,这个类用 数据结构 来组织数据 用来描述这个概念前面学习的的类模板,直接将类的数据类型给抽象化了,一个模板类适用于各种数据类型,不管是内置类型(int,char…),还包括一些自定义类型(例如 自定义的链表节点、树节点…),这些类模板再加上一定的 数据结构的组织 (数据被组织成 数组 、原创 2021-11-26 13:59:29 · 2277 阅读 · 7 评论 -
C++ 类和对象
文章目录对面向对象(OOP)的初步认识类的引入类的定义类的定义方式:类的访问限定符及封装访问限定符封装类的作用域类的实例化类的大小的计算类成员的this指针对面向对象(OOP)的初步认识C语言是面向过程 的,关注是处理数据的过程,分析出求解问题的步骤,通过函数调用逐步解决问题。数据 和 处理数据的方法是分离的。C++是 基于面向对象 的,关注的是 对象 ,将一件事情拆分成不同的对象,靠对象之间交互完成。而C++ 将数据 和 处理数据的方法封装在一起,包含数据完整的生命周期。 但是C++也不是纯面向对原创 2021-10-21 16:49:17 · 1224 阅读 · 11 评论 -
c++ 基础概念
C++基础概念文章目录C++基础概念1.C++关键字2.命名空间3. C++输入&输出4. 缺省参数5.函数重载6.引用7.内联函数8.auto关键字9.基于范围的for循环10.指针空值1.C++关键字由于c++是向下兼容c语言的,所以c语言的32个关键字c++都会包含,此外c++新增了一些其他的关键字,使c++的关键字增加到了63个2.命名空间1.为什么要命名空间:我们在C/C++中,变量、函数名如果定义在全局作用域中,可能会给下面程序定义变量造成冲突。例如#include&l原创 2021-10-05 20:34:33 · 1241 阅读 · 10 评论