- 博客(22)
- 收藏
- 关注
原创 C++文件系统
filesystem#include <filesystem>#include <iostream>using namespace std;int main(){ //打开文件夹 filesystem::path url("file"); //判断当前文件夹是否存在 if (!filesystem::exists(url)) { cout << "相对路径文件夹不存在" << endl; } //创建单层文件夹,路径存在不做其他
2022-01-10 16:23:43
279
原创 C++时间管理和随机数
时间段#include <chrono> // duration TYPEDEFStypedef duration<long long, nano> nanoseconds; //纳秒typedef duration<long long, micro> microseconds; //微秒typedef duration<long long, milli> milliseconds; //毫秒typedef duration<long
2022-01-06 12:05:13
562
原创 C++正则表达式
regex_matchregex_replaceregex_search#include <iostream>#include <regex>#include <string>using namespace std;//1.regex_match正则匹配void test_regex_match(){ //满足:true 不满足:false regex email("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\
2022-01-04 11:41:28
277
原创 C++智能指针
shared_ptr1.get()函数:返回数据类型指针的引用2.use_count()函数:返回管理对象的指针数3.swap()函数:交换管理对象4.reset()函数:重置管理对象5.make_shared<>()函数:构建shared对象#include <iostream>#include <memory>using namespace std;class custom{public: void print() { co
2022-01-04 10:22:58
311
原创 C++STL算法
STL查找算法1.基本查找(1)find:区间查找(2)find_if:条件查找(3)find_firt_of: 查找区间第一次出现值(4)adjacent_find: 查找第一次重复的数(5)search:子序列查找(6)search_n: 子序列查找出现次数2.统计查找(1)count: 区间统计(2)count_if: 条件统计个数(3)equal:比较3.有序查找(1)binary_search:二分查找(2)upper_bound: 查找最后
2022-01-03 18:06:35
242
原创 C++STL迭代器
迭代器1.迭代器:类中类,通过运算符的重载,用类中类的对象遍历容器2.迭代器分类:(1)正向迭代器:iterator(begin(); end();)(2)反向迭代器:reverse_iterator(rbegin(); rend();)(3)常正向迭代器:const_iterator(cbegin(); cend();)(4)常反向迭代器:const_reverse_iterator(crbegin(); crend();)3.按功能分类:(1)正向迭代器(2)双向迭代
2021-12-30 21:31:57
453
原创 C++STL容器(三)
集合1.数据自带排序2.数据具有唯一性(单集合)#include <iostream>#include <set>#include <string>#include <ctime>#include <bitset>using namespace std;//基本操作void testSet(){ srand((unsigned int)time(nullptr));//随机数种子 set<int> se
2021-12-20 18:51:05
363
原创 C++STL容器(二)
链表#include <iostream>#include <string>#include <list>#include <functional> //仿函数less和greater头文件using namespace std;//list基础数据类型操作void testList(){ list<string> strlist; //尾插入 strlist.push_back("string1"); strlist
2021-12-18 23:53:30
979
原创 C++STL容器(一)
定长数组#include <iostream>#include <string>#include <array>using namespace std;template <class _Ty,size_t size>class Myarray{public: Myarray() { memroy = new _Ty[size]; } _Ty& operator[](int index) { return memro
2021-12-16 13:52:57
898
原创 C++模板
函数模板1.把类型当作未知量2.语法template <typename _Ty>_Ty function(_Ty a,_Ty b){ return a>b?a:b;}template <class _Ty1,class _Ty2>void print(_Ty1 a,_Ty2 b){ cout<< a << b <<endl;}3.调用(1)隐式调用(2)显示调用:函数名<类型名
2021-12-13 16:46:38
786
原创 C++异常处理
基本异常处理1.异常处理机制:暂缓问题处理,不在当前函数中处理,在它调用者中处理2.任何东西都可以为异常,错误只是异常的一种3.异常一旦被抛出,不做处理,如果引发异常,会调用默认abort终止程序4.捕获和处理异常(1)throw抛出异常(2)try(检查,捕获)和catch(处理异常)一起出现,{}不可省略(3)一个try可以对相应多个catch,只能执行一个匹配项(4)不能存在两个相同的异常处理类型(5)异常处理中char和int类型不会互相转换(6)catch(
2021-12-10 14:18:52
528
原创 C++IO流
流:诺干字节数据从一端到另一端流类体系:1.流对象2.流运算符 << >>输入输出流1.ostream 类(1)cout可重定向为文件(2)cerr 不能重定向为文件(3)clog 可重定向为文件(4)字符类的处理(5)格式控制字符:#include <iomanip> *设置有效位数:setprecision(int) *设置精度:fix结合setprecision(int)2.istream 类 ci...
2021-12-07 22:41:20
576
原创 C++虚函数和多态
虚函数和虚函数表1.用virtual修饰的成员函数叫虚函数2.空的类或者结构体占用1个字节,若只有虚函数,则占4个字节(32位)3.虚函数表:一个指针存储所有虚函数的首地址#include <iostream>using namespace std;class A{public:protected:};class B{public: virtual void print();protected:};class C{public: int num;
2021-12-05 21:19:13
231
原创 C++继承和派生
继承方式与权限问题1.继承的写法2.继承(子类中没有产生新的属性或者行为)派生(子类中有新的属性和行为产生)3.继承实质与权限问题(1)实质:父类的数据和成员子类有一份(2)权限问题:继承方式只会增强父类属性在子类中的权限显示(父类的私有属性不能直接访问)4.私有继承再继承无意义5.子类构造无参函数,父类必须要有无参的构造函数#include <iostream>#include <string>using namespace std;clas
2021-11-30 21:41:53
198
原创 C++类的组合
1.以另一个类的对象为数据成员,必须采用初始化参数列表的写法#include <iostream>#include <string>using namespace std;class Boy{public: Boy(string name, int age) :name(name), age(age){} void printBoy() { cout << name << "\t" << age << endl
2021-11-27 20:21:21
752
原创 C++运算符重载
const成员1.const数据成员(1)const类型变量为只读,不可修改(2)采用初始化参数列表方式初始化2.const成员函数3.const对象static成员友元
2021-11-25 22:12:28
439
原创 C++特殊成员
const成员1.const数据成员(1)const类型变量为只读,不可修改(2)采用初始化参数列表方式初始化2.const成员函数3.const对象static成员友元
2021-11-23 16:01:16
573
原创 自实现字符串的追加和比较
#include <iostream>#include <string>#include <cstring>using namespace std;class mystring{public: mystring() = default; mystring(const char* pstr) { str = new char[strlen(pstr) + 1]; strcpy(str, pstr); } ~mystring()//析构 {.
2021-11-21 16:11:54
590
原创 C++构造与析构
构造函数1.构造函数样式(1)函数名和类名相同(2)没有返回值(3)若无构造函数,任何类中都存在一个默认的构造函数 ①默认的构造函数都是无参的 ②若有构造函数,默认构造函数不存在(4)delete可以用来删除默认函数(5)使用默认构造函数,用default说明(6)构造函数在构造对象的时候调用(初始化参数列表) 构造函数名(参数1,参数2,参数3,...):成员1(参数1),成员2(参数2),成员3(参数3),...{}(7)允许构造函...
2021-11-21 14:29:44
542
原创 C++类和对象(附C语言与C++链表)
类和对象的基本概念1.类:一系列事物的抽象,万物皆可为类(1)属性:事物的特征/数据类型的描述(2)行为:事物的操作/函数描述2.对象:类的具体化/类的实例化类的定义1.创建语法class 类名{ //权限限定词public: //共有属性(类外的接口)protected: //保护属性private: //私有属性};2.权限限定词的作用(1)类外只能访问共有属性。类外访问类内的数据,只能通过对象访问,static成员除外。(2)
2021-11-18 23:06:11
1087
2
原创 C++和C语言区别(二)附二级指针的动态内存申请
结构体区别1.定义结构体与C语言一致2.定义变量可省略关键字struct3.C++结构体中允许函数存在(C++在没有写构造函数和权限限定的时候,用法和C语言一致)(1)函数可以直接在结构体中实现,也可在结构体中声明,在结构体外实现,(2)结构体中函数可以直接访问结构体中数据(3)学会调用: 对象(结构体变量).成员 对象指针->成员 (*对象指针).成员#define _CRT_SECURE_NO_WARNING...
2021-11-16 18:46:42
541
1
原创 C++与C的区别(作业)
头文件的区别1.C++中创建源文件后缀为.cpp,C语言中创建源文件后缀为.c,头文件保持不变,后缀为.h。2.包含自己的头文件,C语言与C++无区别。包含库目录,C语言中加后缀.h,C++则可以去掉.h加个c,例如#include <stdio.h>等价与#include <cstdio>。命名空间引入命名语法namespace 空间名{}在C++中,可以增加标识符的使用率,在C语言中,同一个作用域中无法定义相同的标识符。空间声明的函数可以在外部实
2021-11-14 11:33:02
687
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人