C++
文章平均质量分 74
开启C++的学习之旅
chaser&upper
西电CS硕士在读,热爱Coding,喜欢分享,欢迎您与我交流~
展开
-
C语言中(%d %.2d %2d %02d)(%2x, %02x, %-2x, %.2x)(%f, %.2f, %2.2f)(%e, %.2e,%3.2e)的区别
【代码】C语言中(%d %.2d %2d %02d)(%2x, %02x, %-2x, %.2x)(%f, %.2f, %2.2f)(%e, %.2e,%3.2e)的区别。原创 2023-03-25 19:25:34 · 1055 阅读 · 2 评论 -
大整数加法基本思路和代码(C++实现)
如果给出两个很大很大的整数,这两个数大到long类型也装不下,比如100位整数,如何求它们的和呢?Java中有无敌的BigInteger,而C++只能眼气~C/C++中的int 类型能表示的范围是−231−2311−231−231–1unsigned类型能表示的范围是0−2320-2^{32}0−232。原创 2023-03-22 17:28:45 · 4147 阅读 · 1 评论 -
C++中transform()函数用法及tolower()大小写转化
C++中transform()函数用法及大小写转化,transform函数的作用是:将某操作应用于指定范围的每个元素。原创 2023-03-17 20:27:56 · 1101 阅读 · 0 评论 -
C++ 二维数组初始化
【代码】C++ 二维数组初始化。原创 2023-03-12 17:38:57 · 620 阅读 · 5 评论 -
C++中String类find函数与string::npos的含义
问题:有两个字符串a、b, 现想判断a字符串是否包含b字符串,该如何设计程序?思路:此处需要用到string库中的find函数与npos参数。原创 2023-03-11 21:43:36 · 293 阅读 · 0 评论 -
C/C++程序中全局变量、局部变量、堆、栈的存储区域介绍
区域作用内存栈区存放局部变量名内存堆区存放new或者malloc出来的对象常数区存放局部变量或者全局变量的值静态区用于存放全局变量或者静态变量代码区二进制代码。原创 2023-03-09 21:53:16 · 1678 阅读 · 0 评论 -
【C++】max_element()min_element()函数简介
【C++】max_element()min_element()函数简介它接受两个迭代器作为参数,表示一个范围。:最值元素的地址(迭代器),需要减去序列头以转换为下标。:容器的首尾地址(迭代器)(可以是一个区间)分别用来求最大元素和最小元素的位置。这是C++语言中的一个函数,函数名为。表示迭代器从n数组的第二个元素开始,表示迭代器到n数组的最后一个元素。所以这个函数的作用是。原创 2023-03-08 19:43:07 · 2256 阅读 · 0 评论 -
【C++】adjacent_difference 的使用
【C++】adjacent_difference 的使用是 STL 算法组件中的算法。的作用:计算返回相邻元素的差值。()是位于numeric头文件中,用来比较序列中相邻元素的差值,并将它们的差值保存到另外一个序列上。因为第一个的前一个值为空,所以第一个元素会原封不动的复制到序列中,然后第二个元素和第一个元素相减结果作为新的第二个序列元素,再用第三个元素减去第二个元素得到新的第三个序列元素。由此类推。它有两种写法,一种是上述的默认减法,另外一种就是定义运算法。原创 2023-03-08 19:29:33 · 470 阅读 · 0 评论 -
【C++】string字符串查找替换、比较、提取、插入和删除
【代码】【C++】string字符串查找替换、比较、提取、插入和删除。原创 2023-03-07 20:26:32 · 5068 阅读 · 0 评论 -
C++ setprecision用法详解
请注意,如果有效数少于要显示的数字,则 setprecision 将舍入,而不是截断数字。另外还需要注意的是,末尾的零将被省略。因此,尽管指定了 setprecision(5),但是 21.40 仍显示为 21.4。该程序创建的输出,按照指示,允许显示最多 5 个有效数,并以 8 个字符的字段宽度右对齐打印。操作符来控制显示浮点数值的有效数字的数量。setw 可以设置字段宽度。原创 2023-03-04 15:59:15 · 8042 阅读 · 0 评论 -
C++中inline是什么作用?【ChatGPT问答】
C++中inline是什么作用?【ChatGPT问答】原创 2023-03-02 15:35:07 · 183 阅读 · 0 评论 -
C++中erase的用法
删除postion处的一个字符(position是一个string类型的迭代器)删除从下标pos开始的n个字符,比如erase(0,1)就是删除第一个字符。删除从first到last之间的字符(first和last都是迭代器)原创 2023-03-01 20:36:15 · 4913 阅读 · 0 评论 -
【C++】ios::sync_with_stdio(false) 与 cin.tie(0) 加速 IO
之前写题遇到大数据量(cin、cout 数据量级达到 1e5、1e6 ),因为考虑 IO 性能报错 TLE,故选择 scanf、printf 替代 cin、cout,以解决问题。原创 2023-02-18 14:38:52 · 1653 阅读 · 0 评论 -
C语言对于char*和char[]的理解
1、const在*前修饰指定的类型,const在*之后修饰指针。2、读入只能是char [],因为读入需要明确的地址,注意必须标定长度。总结:char * s 只是一个保存字符串首地址的指针变量,char a[]是许多连续的内存单元,单元中的元素是char型,char * 和 char a[]具有相同的效果,源于字符串的本质,即给一个字符串地址,便可以操作字符串,但char* 和 char a[]的本质属性不一样。改值还得是char*,因为方便。原创 2023-02-04 20:10:13 · 1595 阅读 · 1 评论 -
【C++】OJ 算法笔记
【C++】OJ算法笔记前言头文件for循环简写cin/cout快速输入/输出C输入头文件long longtypedef long long ll;前言我发现学了C++,但是写OJ题时,基本的输入输出还是不会,因此还是刷洛谷题,看题解学着写代码吧。在看大佬代码时,遇到奇淫技巧记录下来,作为学习。头文件万能头文件:#include<bits/stdc++.h>for循环简写#define f(i,j,n) for(i=j;i<=n;i++)也可以这样:#define原创 2022-12-29 20:05:18 · 339 阅读 · 0 评论 -
【C++核心技术】个人笔记
【C++核心技术】个人笔记四大内存分区&引用四大内存分区&引用全局区// 全局变量,main函数外面定义的// 静态变量static int a = 10;// 常量:字符串常量"string"// const修饰的全局变量(也放常量区)const int a, b, c = 10;栈区由编译器自动分配和释放(形参也会放在栈区)int* func(){ int a = 10; // 局部变量 存放在栈区,栈区的数据在函数执行完后自动释放 r原创 2022-12-29 20:04:28 · 188 阅读 · 0 评论 -
【C++11】string与int的相互转换
C++:string与int的相互转换int转stringstring转intint转string定义于头文件<string>std::string to_string( int value );std::string to_string( long value );std::string to_string( long long value );std::string to_string( unsigned value );std::string to_string( unsig原创 2022-03-26 20:50:39 · 2504 阅读 · 0 评论 -
【C++提高编程】STL-list容器(三)
STL- 常用容器3.7 list容器3.7.1 list基本概念3.7.2 list构造函数3.7.3 list 赋值和交换3.7.4 list 大小操作3.7.5 list 插入和删除3.7.6 list 数据存取3.7.7 list 反转和排序3.7.8 排序案例3.7 list容器3.7.1 list基本概念功能:将数据进行链式存储链表(list)是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的链表的组成:链表由一系列结点组成结点的组成:一个是存储数转载 2022-03-26 19:40:46 · 208 阅读 · 0 评论 -
【C++提高编程】STL-stack&queue 容器(三)
STL- 常用容器3.5 stack容器3.5.1 stack 基本概念3.5.2 stack 常用接口3.6 queue 容器3.6.1 queue 基本概念3.6.2 queue 常用接口3.5 stack容器3.5.1 stack 基本概念概念:stack是一种先进后出(First In Last Out,FILO)的数据结构,它只有一个出口栈中只有顶端的元素才可以被外界使用,因此栈不允许有遍历行为栈中进入数据称为 — 入栈 push栈中弹出数据称为 — 出栈 pop生活中的栈原创 2022-03-25 11:01:02 · 231 阅读 · 1 评论 -
【C++提高编程】STL-deque容器(三)
STL- 常用容器3.3 deque容器3.3.1 deque容器基本概念3.3.2 deque构造函数3.3.3 deque赋值操作3.3.4 deque大小操作3.3.5 deque 插入和删除3.3.6 deque 数据存取3.3.7 deque 排序3.3 deque容器3.3.1 deque容器基本概念功能:双端数组,可以对头端进行插入删除操作deque与vector区别:vector对于头部的插入删除效率低,数据量越大,效率越低deque相对而言,对头部的插入删除速度会比v原创 2022-03-25 10:41:22 · 165 阅读 · 0 评论 -
【C++提高编程】STL-vector容器(三)
STL- 常用容器3.2 vector容器3.2.1 vector基本概念3.2.2 vector构造函数3.2.3 vector赋值操作3.2.4 vector容量和大小3.2.5 vector插入和删除3.2.6 vector数据存取3.2.7 vector互换容器3.2.8 vector预留空间3.2 vector容器3.2.1 vector基本概念功能:vector数据结构和数组非常相似,也称为单端数组vector与普通数组区别:不同之处在于数组是静态空间,而vector可以动态原创 2022-03-22 19:36:58 · 186 阅读 · 2 评论 -
【C++提高编程】STL-string容器(三)
STL- 常用容器3.1 string容器3.1.1 string基本概念3.1.2 string构造函数3.1.3 string赋值操作3.1.4 string字符串拼接3.1.5 string查找和替换3.1.6 string字符串比较3.1.7 string字符存取3.1.8 string插入和删除3.1.9 string子串3.1 string容器3.1.1 string基本概念本质:string是C++风格的字符串,而string本质上是一个类string和char * 区别:c转载 2022-03-21 19:30:05 · 215 阅读 · 0 评论 -
【C++提高编程】STL 初识(二)
C++提高编程-STL 初识2 STL初识2.1 STL的诞生2.2 STL基本概念2.3 STL六大组件2.4 STL中容器、算法、迭代器2.5 容器算法迭代器初识2.5.1 vector存放内置数据类型2.5.2 Vector存放自定义数据类型2.5.3 Vector容器嵌套容器2 STL初识2.1 STL的诞生长久以来,软件界一直希望建立一种可重复利用的东西C++的面向对象和泛型编程思想,目的就是复用性的提升大多情况下,数据结构和算法都未能有一套标准,导致被迫从事大量重复工作原创 2022-03-20 20:16:37 · 328 阅读 · 2 评论 -
【C++提高编程】模板 or 泛型(一)
C++提高编程-模板1 模板1.1 模板的概念1.2 函数模板1.2.1 函数模板语法1.2.2 函数模板注意事项1.2.3 函数模板案例1.2.4 普通函数与函数模板的区别1.2.5 普通函数与函数模板的调用规则1.2.6 模板的局限性1.3 类模板1.3.1 类模板语法1.3.2 类模板与函数模板区别1.3.3 类模板中成员函数创建时机1.3.4 类模板对象做函数参数1.3.5 类模板与继承1.3.6 类模板成员函数类外实现1.3.7 类模板分文件编写1.3.8 类模板与友元1.3.9 类模板案例本原创 2022-03-18 10:05:22 · 264 阅读 · 0 评论 -
【How&Why?】C++详解创建数组并初始化
C++创建数组并初始化1. 栈区2. 动态数组一维数组二维数组3. 赋值memsetfill4. 数组初始化5. 数组作为参数传递6. 数组与指针关系7. 数组的存储格式8. 字符数组9. 内存泄露1. 栈区数组是底层数据类型,存放在栈中,其内存的分配和释放完全由系统自动完成。通过如下代码初始化一个全局变量数组,初始化的规则就是不足数组大小的按默认值补位:int a[5]; //int默认0int b[5] = {1,2}; // {1,2,0,0,0} 不足5位的0补位string c[5]原创 2022-03-13 22:00:55 · 3451 阅读 · 0 评论 -
【C/C++解惑篇】*,**,:: ,&,*&,**&和函数传参-七者详解
【C/C++指针解惑】*,**和&三者详解前言1. C/C++中 * 的用法2. C/C++中 & 的用法3. 函数的参数3.1 函数传入普通参数3.2 函数传入指针参数3.3 引用传入函数参数4. C/C++中 :: 的用法5. C/C++中 ** 的用法6. C/C++中 *&,**& 的用法前言最近指针还是容易迷,重新整理学习一下!C语言之所以要起名为“C”,是取的“BCPL”的第二个字母(第一个字母用来命名之前被发明的B语言) 。当C语言发展到顶峰的时刻,出现原创 2022-03-13 21:00:49 · 5533 阅读 · 5 评论 -
【C++实战】基于多态的企业职工系统
【C++实战】基于多态的企业职工系统职工管理系统1、管理系统需求2、创建项目2.1 创建项目2.2 添加文件3、创建管理类3.1创建文件3.2 头文件实现3.3 源文件实现4、菜单功能4.1 添加成员函数4.2 菜单功能实现4.3 测试菜单功能5、退出功能5.1 提供功能接口5.2 实现退出功能5.3测试功能6、创建职工类6.1 创建职工抽象类6.2 创建普通员工类6.3 创建经理类6.4 创建老板类6.5 测试多态7、添加职工7.1 功能分析7.2 功能实现7.3 测试添加8、文件交互 - 写文件8.1原创 2022-03-13 20:24:26 · 356 阅读 · 0 评论 -
【C++核心编程】文件操作(五)
【C++核心编程】文件操作(五)5 文件操作5.1文本文件5.1.1写文件5.1.2读文件5.2 二进制文件5.2.1 写文件5.2.2 读文件5 文件操作程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放通过文件可以将数据持久化C++中对文件操作需要包含头文件 < fstream >文件类型分为两种:文本文件 - 文件以文本的ASCII码形式存储在计算机中二进制文件 - 文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂它们操作文件的三大类:原创 2022-03-12 16:30:12 · 175 阅读 · 0 评论 -
【C++核心编程】面向对象(四)
C++核心编程-面向对象4 类和对象4.1 封装4.1.1 封装的意义4.1.2 struct和class区别4.1.3 成员属性设置为私有4.2 对象的初始化和清理4.2.1 构造函数和析构函数4.2.2 构造函数的分类及调用4.2.3 拷贝构造函数调用时机4.2.4 构造函数调用规则4.2.5 深拷贝与浅拷贝4.2.6 初始化列表4.2.7 类对象作为类成员4.2.8 静态成员4.3 C++对象模型和this指针4.3.1 成员变量和成员函数分开存储4.3.2 this指针概念4.3.3 空指针访问成原创 2022-03-12 16:16:52 · 210 阅读 · 0 评论 -
【VSCode】更改C/C++编译后的.exe文件生成位置(2022/1/29)
【VSCode】更改C/C++编译后的.exe文件生成位置前言1. 安装插件Code Runner2. settings.json3. launch.json4. tasks.json前言C/C++程序运行产生的可执行文件和源码混在一起,作为一名强迫症,我们怎能容忍它“如此放肆”。确实烦人,如果源代码多的话,文件夹会爆满,然后生成的可执行文件和源代码就会放在一个目录里,还是同名,就很容易点错,所以就想着改改。因此,用VSCode写C/C++时, 为了方便,会把不同的源文件放在一个文件夹里。下面是原创 2022-01-29 21:49:32 · 5948 阅读 · 11 评论 -
Visual Studio 中使用万能头文件 #include <bits/stdc++.h>
Visual Studio 中使用万能头文件 #include 前言最近开始使用VS,之前用的DEV C++软件可直接使用 #include <bits/stdc++.h> ,但VS中并没有,为了使用方便,可直接在VS中添加此头文件,方法如下:#include<bits/stdc++.h>包含了目前c++所包含的所有头文件!!!!操作步骤1.在安装路径下,依次进入:VC --> Tools --> MSVC --> 14.13.26128(此文件夹名每原创 2022-01-10 21:10:26 · 4946 阅读 · 6 评论 -
【C++开山解惑篇】入门测试题目:a+b(适用于初学者)
【C++开山】入门测试题目:a+bContentSolution & CodeC++&CC++Part 1 基础语言知识头文件数据类型函数输入输出Part 2 本题你需要了解的一些东西又一知识typedef long long ll;Content给定 a,b,求 a+b。数据范围:1⩽a,b⩽4×10181\leqslant a,b\leqslant4\times10^{18}1⩽a,b⩽4×1018.Solution & Code本题解仅适用于 C++ 选手。这道题可原创 2022-01-07 19:59:24 · 919 阅读 · 0 评论 -
零基础 | 如何用VS Code写C/C++程序 - 安装与配置
零基础 | 如何用VS Code写C/C++程序 - 安装与配置前言1. 安装VS Code2. 安装MinGW3. 配置VS Code4. 实用功能前言VS Code界面美观,而且有一个很方便的命令行控制台,再者…不管从哪个角度看都比Dev-C++好用啊!在高颜值界面下写代码会越敲越开心( ´・ω・)1. 安装VS CodeVisual Studio Code - Code Editing. Redefined - 官网点最大那个按钮下载安装即可!(Stable Build)一路傻瓜式原创 2022-01-07 17:40:44 · 2720 阅读 · 2 评论 -
【C++核心编程】函数提高(三)
函数提高(三)3.1 函数默认参数3.2 函数占位参数3.3 函数重载3.3.1 函数重载概述3.3.2 函数重载注意事项3.1 函数默认参数在C++中,函数的形参列表中的形参是可以有默认值的。语法:返回值类型 函数名 (参数= 默认值){}示例:int func(int a, int b = 10, int c = 10) { return a + b + c;}//1. 如果某个位置参数有默认值,那么从这个位置往后,从左向右,必须都要有默认值//2. 如果函数声明有默认值,函数实现的转载 2022-01-05 15:29:16 · 131 阅读 · 0 评论 -
【C++练习】2022年蓝桥杯选拔赛
【C++练习】蓝桥杯选拔赛前言A: 通辽题解C++E: 扫雷H: 短板C++前言写此篇仅为练习C++,刚好练练手,C++代码来源宋神sqr,研究大佬的C++代码,致谢!A: 通辽题目描述小j到达了火星,发现这里的领土未被开垦,先到先到。他选择了一块面积为x km²的土地,已知通辽的面积约为59535 km²,请问小j选择的这块土地,相当于几个通辽?输入第一行输入一个非负整数x,表示小j选择的土地面积。(0 ≤ x ≤ 100000000) 输出请输出小j的领土相当于几个通辽,结果原创 2021-12-09 12:49:53 · 3071 阅读 · 4 评论 -
cin.get(), cin.getline() , getline(cin,s) 三者的区别
cin.getline()用法:接收一行字符串,可以接收空格并输出,可以控制接受的字符范围#include <iostream>using namespace std;main (){ char m[20]; cin.getline(m,5); cout<<m<<endl;}输入:jkljkljkl输出:jklj接收5个字符到m中,其中最后一个为’\0’,所以只看到4个字符输出;如果把5改成20:输入:jkljkljkl输出:jkljkl原创 2021-12-08 16:51:16 · 1582 阅读 · 0 评论 -
【C++疑问】signed main 和 int main 的区别?
signed main 和 int main 的区别?前言主要区分前言今天看见大佬的C++代码,主函数"int main"打成了"signed main",心生疑问,便去查阅。#pragma Gcc optimize(3,"inline","Ofast");#include<bits/stdc++.h>using namespace std;#define int long longtypedef long long ll; signed main(){ double原创 2021-12-08 12:52:14 · 9437 阅读 · 1 评论 -
【C++核心编程】引用(二)
【C++核心编程】引用(二)2 引用2.1 引用的基本使用2.2 引用注意事项2.3 引用做函数参数2.4 引用做函数返回值2.5 引用的本质2.6 常量引用总结2 引用2.1 引用的基本使用作用: 给变量起别名语法: 数据类型 &别名 = 原名示例:int main() { int a = 10; int &b = a; cout << "a = " << a << endl; cout << "b = " <&原创 2021-11-30 21:15:21 · 254 阅读 · 0 评论 -
【C++核心编程】内存分区模型(一)
【C++核心编程】内存分区模型1 内存分区模型1.1 程序运行前1.2 程序运行后1.3 new操作符总结本阶段主要针对C++面向对象编程技术做详细讲解,探讨C++中的核心和精髓。1 内存分区模型C++程序在执行时,将内存大方向划分为4个区域代码区:存放函数体的二进制代码,由操作系统进行管理的全局区:存放全局变量和静态变量以及常量栈区:由编译器自动分配释放, 存放函数的参数值,局部变量等堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收内存四区意义:不同区域存放的数据,原创 2021-11-30 21:07:57 · 191 阅读 · 0 评论 -
【C++基础应用】通讯录管理系统
通讯录管理系统通讯录管理系统1、系统需求2、创建项目2.1 创建项目2.2添加文件3、菜单功能4、退出功能5、添加联系人5.1 设计联系人结构体5.2 设计通讯录结构体5.3 main函数中创建通讯录5.4 封装添加联系人函数5.5 测试添加联系人功能6、显示联系人6.1 封装显示联系人函数6.2 测试显示联系人功能7、删除联系人7.1 封装检测联系人是否存在7.2 封装删除联系人函数7.3 测试删除联系人功能8、查找联系人8.1 封装查找联系人函数8.2 测试查找指定联系人9、修改联系人9.1 封装修改转载 2021-11-23 21:58:57 · 544 阅读 · 0 评论