![](https://img-blog.csdnimg.cn/6cdee30a9d8d43b3bf245ec719c6e270.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
c++
文章平均质量分 90
本专栏主要介绍了c++的语言特性和基础语法,以及stl库的用法和底层原理
敲键盘的喵
热爱编程的大学生
展开
-
C++的类型转换
C语言中原有的类型转换存在缺陷,且可读性较差,所以C++增加了新的类型转换规范,我们一起来学习一下吧。1. C语言中的类型转换在C语言中,如果赋值运算符左右两侧类型不同,或者形参与实参类型不匹配,或者返回值类型与接收返回值类型不一致时,就需要发生类型转化,C语言中总共有两种形式的类型转换:隐式类型转换和显式类型转换。隐式类型转化:编译器在编译阶段自动进行,能转就转,不能转就编译失败。显式类型转化:需要用户自己处理。原创 2022-10-04 18:13:09 · 526 阅读 · 0 评论 -
智能指针详解
C++11中引入了智能指针的特性,本文将详细介绍智能指针的使用。1、为什么需要智能指针?{delete p1;delete p2;}在这段代码中,如果在div中抛异常,很显然会造成内存泄漏。为了避免内存泄漏,我们希望有一种指针可以做到自动管理内存释放。原创 2022-10-01 21:42:49 · 4872 阅读 · 1 评论 -
C++ 异常详解
在c语言中我们只能使用传统的返回错误码方式来处理错误,有时候会很不方便。所以在c++中增加了异常这一特性。1、C语言传统的处理错误的方式终止程序,如assert,缺陷:用户难以接受。如发生内存错误,除0错误时就会终止程序。返回错误码,缺陷:需要程序员自己去查找对应的错误。如系统的很多库的接口函数都是通过把错误码放到errno中,表示错误实际中C语言基本都是使用返回错误码的方式处理错误,部分情况下使用终止程序处理非常严重的错误。本文主要简单介绍了异常的使用,希望能给大家带来帮助。原创 2022-09-30 20:26:20 · 1567 阅读 · 0 评论 -
C++11详解
C++11对比C++98带来了数量可观的变化,增加了很多新特性。相比较而言C++11能更好地用于系统开发和库开发、语法更加泛华和简单化、更加稳定和安全,不仅功能更强大,而且能提升程序员的开发效率,公司实际项目开发中也用得比较多。所以对C++11的学习是很重要的。一、统一的列表初始化在C++11之前,涉及到多线程问题,都是和平台相关的,比如windows和linux下各有自己的接口,这使得代码的可移植性比较差。C++11中最重要的特性就是对线程进行支持了,使得C++在。原创 2022-09-30 19:03:48 · 7671 阅读 · 2 评论 -
特殊类设计
小伙伴们大家好,本文主要介绍一些常见特殊类的设计方式,希望能给大家带来帮助。设计一个类,不能被拷贝拷贝只会放生在两个场景中:拷贝构造函数以及赋值运算符重载,因此想要让一个类禁止拷贝,只需让该类不能调用拷贝构造函数以及赋值运算符重载即可。实现方法:将拷贝构造函数和赋值运算符都设为私有即可满足要求。这里只需声明无需定义,因为该函数根本不会调用,定义了也没有意义。原创 2022-09-24 19:57:49 · 521 阅读 · 0 评论 -
<stl系列>哈希表详解,掌握stl容器从现在开始
哈喽,小伙伴们大家好,今天我们来学习几个新的容器。这几个容器存储和查找数据效率是非常高的,能达到非常理想的O(1),这主要因为它们采用了哈希的思想。那么事不宜迟,我们一起来看看吧。一、unordered系列关联式容器c++中容器分为序列式容器和关联式容器。所谓序列容器,就是以线性排列来排列某种类型的数据,比如vect,list,dequene。序列式容器通常只是单纯的用来存储数据。原创 2022-09-22 20:33:02 · 1688 阅读 · 1 评论 -
<stl系类> map和set详解,掌握stl容器从现在开始
哈喽,小伙伴们大家好。今天我们继续来学习STL容器,今天我将主要介绍map和set的使用。话不多说,拿好小本本,我们赶快开始吧。一、关联式容器1、关联式容器概念在之前我们接触过STL的部分容器,比如vector,deque,list。这些容器统称为序列式容器,底层为线性结构,存储的是元素本身。那什么是关联式容器呢?关联式容器也是用来存储数据的,与序列式容器不同的是,关联式容器中存储的结构的键值对,有助于数据检索。...原创 2022-08-25 13:16:08 · 649 阅读 · 2 评论 -
面向对象三大特性之一——多态详解
哈喽,小伙伴们大家好。上一章我们一起学习了继承,今天我们继续来学习面向对象三大特性中的最后一个特性——多态。事不宜迟,快拿起小本本,跟我一起开始吧。一、多态的概念多态,顾名思义,也就是多种状态。通俗点说就是不同的对象去干同一件事情时会产生不同的状态。以买火车票为例,普通人买票就要付全款,学生买票就可以出半价,军人虽然不能优惠但是可以优先买票。放到我们程序中就是不同继承关系的类对象去调用同一个函数,会产生不同的状态。在了解多态的构成条件前,我们先来了解一个概念,虚函数。在同一个作用域。......原创 2022-07-23 09:43:37 · 1759 阅读 · 5 评论 -
面向对象三大特性之一——继承详解
hello,小伙伴们大家好。相信对面向对象有一定了解的小伙伴都知道面向对象的三大特性为封装、继承、多态。封装特性我们已经在类和对象中体验到了,那么今天我们就来接着学习面向对象的继承特性。一、继承的概念与定义下面我们看到的Person是父类,也称为基类。Student是子类,也成为派生类。继承后父类的Person成员(成员变量和成员函数)都会成为Student的一部分。{public{}protected//姓名//年龄};{protectedint_stuid;......原创 2022-07-22 20:21:41 · 1208 阅读 · 3 评论 -
<STL系列>,stack和queue详解,掌握STL容器从现在开始
哈喽大家好,今天我们继续来学习STL的容器。本章主要讲解STL中栈和队列的相关知识,小伙伴们快拿好笔记本,让我们一起开始吧。一、stack的介绍和实现(1)stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。(2)stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容器,并提供一组特定的成员函数来访问其元素。empty判空操作back获取尾部元素操作push_back尾部插入元素操作empty{...原创 2022-07-17 20:46:14 · 500 阅读 · 5 评论 -
<stl系列>,vector深度剖析,掌握stl容器从这篇文章开始
目录前言一、vector的介绍二、vector的使用1.基本函数接口2、迭代器失效2.1案例一2.2案例二三、vector的模拟实现1、核心框架图例2、核心框架接口模拟实现 3、使用memcpy拷贝问题总结哈喽,小伙伴们大家好。上一篇文章我们介绍了string类,和string一样,vector同样是stl容器的重要组成部分,那么今天就让我们一起来学习一下吧。vector学习时一定要学会查看文档:vector的文档介绍,vector在实际中非常的重要,在实际中我们熟悉常见的接口就可以,下面列出了哪些接口是要原创 2022-07-09 13:58:19 · 331 阅读 · 8 评论 -
<STL系列>string类详解,掌握STL容器从这篇文章开始
前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示.........原创 2022-05-19 10:52:53 · 751 阅读 · 4 评论 -
模板基础知识讲解,带你快速了解模板的用法
有一句是这样说的,学习c++要分为四部分来学,一部分是兼容c的语法,一部分是面向对象的思想,一部分是模板,一部分是STL。从这句话中我们就可以看出学习模板是学习c++的重要环节。那么接下里,我将带大家认识模板,希望大家在阅读本文后能明白什么是模板以及模板的用法。一、泛型编程c++对比c的一个增强是增加了函数重载功能,在函数参数类型不一样时,我们可以用相同的函数名定义出不同的函数。{}{}{}......使用函数重载虽然可以实现,但会出现以下问题。泛型编程https。...原创 2022-05-10 17:26:20 · 979 阅读 · 1 评论 -
详解c++动态内存管理,带你理清new和delete操作符的用法
目录前言一、c++内存管理方式1.基本语法2.new和delete操作自定义类型二、 operator new与operator delete函数1.基本概念2.new和delete的实现原理三、malloc/free和new/delete的区别(重点)四、如何一次性在堆上申请4G的空间总结前言相信有一定c语言基础的小伙伴都了解动态内存是在堆中开辟的,c语言通过malloc和free等操作符对动态内存进行管理。但是小伙伴们在使用时有没有感到有一些不适呢,例如.原创 2022-05-06 21:48:52 · 1490 阅读 · 0 评论 -
类和对象(下) (初始化列表,static成员函数,友元函数,内部类详解)
文章目录前言哈喽,大家好,本章是类和对象的下篇,学完这一篇,那我们的类和对象就算初步入门啦,那话不多说,让我们快点开始吧。提示:以下是本篇文章正文内容,下面案例可供参考一、初始化列表1.再谈构造函数上一篇我们讲到了,在创建对象时,编译器通过调用构造函数,给成员变量赋初值。但你可能不知道,除了使用构造函数,还有其他途径可以对成员变量进行初始化,那就是初始化列表,它和构造函数有什么共同原创 2022-05-05 20:24:31 · 259 阅读 · 5 评论 -
类与对象(中) 详细讲解类的六个默认成员函数,认真看一定会有收获
目录前言一、类的六个默认成员函数二、构造函数1.概念2.特性三、析构函数1.概念2.特征四、拷贝构造函数1.概念2.特征五、赋值运算符重载1.运算符重载概念2.实现赋值运算符重载六、const修饰类的成员函数七、取地址及const取地址操作符重载总结前言哈喽,大家好,相信看了我上一篇博客的小伙伴已经对类和对象有了一些初步认识,今天我将着重介绍类里面的默认成员函数,希望想要了解的小伙伴不要走开哦。一、类的六个默认成员函数如果一个类里面什么成员都没有,我们一般会把它简称为空类。但空类里真的什么都没有吗?当然不是原创 2022-05-03 21:37:14 · 1536 阅读 · 2 评论 -
类和对象(上),介绍一些类的对象的基础知识以及this指针的概念
前言相信大家都听说过这样一句话,c语言是面向过程编程,而c++是面向对象编程,那么什么是面向对象编程呢?想要弄清楚这一点,我们先要搞清什么是对象,从今天起,我将开始详细介绍c++中非常重要的一部分知识,类与对象。提示:以下是本篇文章正文内容,下面案例可供参考一、类的引入C语言中,结构体中只能定义变量,在C++中,结构体内不仅可以定义变量,也可以定义函数。struct Student{void SetStudentInfo(const char* name, con...原创 2022-05-01 10:17:32 · 197 阅读 · 1 评论 -
怎样在c++中调用c语言的函数
很多小伙伴可能会在编程中遇到这样的问题,那就是在c++文件中调用c语言的函数会发生报错,那么为什么会出现这种情况,又该如何解决呢?例如:以上就是今天要讲的内容,本文仅仅简单介绍了如何在c++文件中调用c文件的函数,希望可以给大家带来帮助。...原创 2022-04-24 21:56:40 · 5746 阅读 · 5 评论 -
宏的缺陷以及内联函数
c++与c的一个区别就是针对宏的缺陷增加了内联函数这一概念,那么宏究竟有什么缺陷,内联函数又怎样去使用呢,让我们一起去看看吧。例如:以上就是今天要讲的内容,本文仅仅简单介绍了宏的缺陷已经内联函数,希望能给大家带来帮助。...原创 2022-04-24 21:15:18 · 1373 阅读 · 0 评论 -
关于c++中引用的基本用法
引用是c++对c的重要扩充。在c/c++中指针的作用基本都是一样的,但是c++增加了另外一种给函数传递地址的途径,这就是按引用传递,那么引用和指针有什么不一样,又适合在哪些场景下使用呢?下面我将进行详细说明。以上就是今天要讲的内容,本文仅仅简单介绍了一些关于引用的基本用法,欢迎大家进行评论和探讨。...原创 2022-04-23 15:56:24 · 2832 阅读 · 1 评论 -
c++对比c语言进行了哪些增强,一起来看看吧
众所周知,c++是基于c语言的基础创造出来的,那么c++对比c语言哪些地方得到了优化呢,让我们一起来看看吧。//c语言中struct不可以加函数 };c中定义结构体变量需要加上struct关键字,c++不需要。const和define拥有类似的功能,但define具有一定的缺陷,例如define 宏没有作用域且没有数据类型。以上就是今天分享的全部内容,希望可以给大家带来帮助,我们一同学习,一同进步。...原创 2022-04-22 23:55:34 · 1467 阅读 · 0 评论 -
双冒号作用运算符以及命名空间详解,你确定不来看看吗?
记录一些c++的基础知识,欢迎大家和我一起学习,一起进步以下为错误写法}以上就是今天要讲的内容,本文仅仅简单介绍了c++的一些基础知识,希望能给大家带来帮助。原创 2022-04-22 01:22:07 · 608 阅读 · 0 评论