C++初阶
文章平均质量分 78
ScarboroughFair#
这个作者很懒,什么都没留下…
展开
-
C++ IO流
目录1. C语言的输入与输出2. 流是什么3. C++IO流3.2 C++文件IO流4. stringstream的简单介绍 1.将数值类型数据格式化为字符串2. 字符串拼接1. C语言的输入与输出 C语言中我们用到的最频繁的输入输出方式就是scanf()与printf()。 scanf(): 从标准输入设备(键盘)读取数据,并将值存放在变量中。printf(): 将指定的文字/字符串输出到标准输出设备(屏幕)。注意宽度输出和精度输出控制。C.......原创 2022-05-04 19:31:50 · 384 阅读 · 0 评论 -
C++ 模板进阶
目录1.非类型模板参数2.类模板的特化2.1 概念2.2函数模板特化2.3类模板特化 2.3.1 全特化2.3.2 偏特化3.类模板特化的应用之类型萃取3.1 什么是分离编译3.2 模板的分离编译3.3 解决方法4.模板的分离编译1.非类型模板参数 模板参数分类类型形参与非类型形参。 类型形参即:出现在模板参数列表中,跟在class或者typename之类的参数类型名称。 非类型形参,就是用一个常量作为类(函数)模板的一个参数,在...原创 2022-05-04 17:52:07 · 564 阅读 · 0 评论 -
C++ stack,queue(补充):deque,反向迭代器
vector和list的优缺点效率比较。原创 2022-07-18 13:33:22 · 278 阅读 · 0 评论 -
C++ 模拟实现stack,queue/仿函数
#pragme oncenamespace bit{ //常规实现数据结构的思路 template<class T> class stack { public: //..... private: T* _a; size_t _size; size_t _capacity'' };}原创 2022-05-03 15:44:54 · 948 阅读 · 0 评论 -
C++ stack和queue相关练习题
1.最小栈力扣删除最小值1后要遍历一遍剩下的数才能找到剩下数里面的最小值 。极端情况下如果数组为降序应该随时记录对应位置的最小值,考虑用双栈(以空间换时间)还可以继续优化:minst中没必要push相同的值还是存在重复的情况class MinStack {public: MinStack() { } void push(int val) { _st.push(val); if.....原创 2022-05-02 17:32:45 · 691 阅读 · 0 评论 -
C++ stack和queue
目录1. stack的介绍和使用1.1 stack的介绍1.2相关oj题目(见博客)1.3 stack的模拟实现2. queue的介绍和使用2.1 queue的介绍2.2 queue的使用2.3 queue的模拟实现3. priority_queue的介绍和使用3.1 priority_queue的介绍3.2 priority_queue的使用3.3在oj中的使用(见博客)3.4 priority_queue的模拟实现4. 容器适配器4...原创 2022-04-30 15:13:52 · 471 阅读 · 0 评论 -
C++模拟实现list
创建节点template<class T> struct _list_node { T _val; _list_node<T>* _next; _list_node<T>* _prev; _list_node(const T& val = T()) :_val(val) , _prev(nullptr) , _next(nullptr) {} };插入可满足没......原创 2022-04-28 10:45:10 · 130 阅读 · 0 评论 -
C++ List
目录1. list的介绍及使用1.1 list的介绍1.2 list的使用1.2.1 list的构造1.2.2 list iterator的使用1.2.3 list capacity1.2.4 list element access1.2.5 list modififiers1.2.6 list的迭代器失效2. list的深度剖析及模拟实现2.1 模拟实现list2.2 对模拟的bite::list进行测试3. list与vector的对比...原创 2022-04-26 20:46:12 · 1369 阅读 · 1 评论 -
C++ vector相关练习题
1.只出现一次的数字class Solution {public: int singleNumber(vector<int>& nums) { int val = 0; for(size_t i = 0;i<nums.size();i++) val^= nums[i]; return val; }};class Solution {public: int si原创 2022-04-22 21:49:28 · 1864 阅读 · 1 评论 -
C++ vector
目录1.vector的介绍及使用1.1 vector的介绍1.2 vector的使用1.2.1 vector的定义1.2.2vector itertor的使用1.2.3 vector空间增长问题1.2.3vector增删查改1.2.4 vector 迭代器失效问题。(重点)1.2.5 vector 在OJ中的使用。(见博客)2.vector深度剖析及模拟实现2.1使用memcpy拷贝问题2.2 对bit::vector核心接口的测试2.3 ...原创 2022-04-16 17:07:14 · 19651 阅读 · 2 评论 -
C++编译器的优化(补充)
传引用返回返回其别名传返回值第四种情况,拷贝构造一个后再赋值,对象a4已经存在,不能说用aa拷贝构造a4传参数传临时对象课后阅读《深度探索C++对象模型》下面代码使用了多少次拷贝构造?...原创 2022-04-14 20:14:32 · 565 阅读 · 0 评论 -
C++ string类练习题(待完成)
目录1.翻转字符串2-区间部分翻转2.翻转字符串3-翻转字符串中的单词3.字符串相乘4.找出字符串中只出现一次的字符1.翻转字符串2-区间部分翻转力扣2.翻转字符串3-翻转字符串中的单词力扣3.字符串相乘力扣4.找出字符串中只出现一次的字符找出字符串中第一个只出现一次的字符_牛客题霸_牛客网...原创 2022-04-12 21:05:43 · 410 阅读 · 0 评论 -
C++ string类例题
目录1.仅仅反转字母2.找字符串中第一个只出现一次的字符3.字符串里面最后一个单词的长度4.验证字符串是否为回文5.字符串相加1.仅仅反转字母力扣class Solution {public: string reverseOnlyLetters(string S) { char* pLeft = (char*)S.c_str(); char* pRight = pLeft + (S.size() - 1); while (pLeft < pRigh原创 2022-04-12 21:02:04 · 678 阅读 · 0 评论 -
C++ string类的模拟实现
namespace bit{ class string { public: typedef char* iterator; public: string(const char* str = "") { _size = strlen(str); _capacity = _size; _str = new char[_capacity + 1]; strcpy(_str, str); } string(const string& s) ...原创 2022-04-12 20:48:49 · 486 阅读 · 0 评论 -
C++ string类
目录1. 为什么要学习string类1.1 C语言中的字符串1.2 两个面试题(暂不做讲解)2. 标准库中的string类2.1 string类(了解)2.2 string类的常用接口说明(注意下面我只讲解最常用的接口)1. string类对象的常见构造2. string类对象的容量操作3. string类对象的访问及遍历操作4. string类对象的修改操作5. string类非成员函数6. 牛刀小试3. string类的模拟实现3.1 经...原创 2022-04-12 20:44:18 · 9236 阅读 · 1 评论 -
C++ STL简介
目录1. 什么是STL2. STL的版本3. STL的六大组件4. STL的重要性1.笔试2.面试5. 如何学习STL6.STL的缺陷1. 什么是STL STL(standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。2. STL的版本 原始版本 Alexander Stepanov、Meng Lee 在惠普实验室完成的原始版本,本着开原创 2022-04-12 19:57:10 · 84 阅读 · 0 评论 -
C++模板初阶
目录1. 泛型编程2. 函数模板2.1 函数模板概念2.2函数模板格式2.3 函数模板的原理2.4 函数模板的实例化2.5 模板参数的匹配原则3. 类模板3.1 类模板的定义格式3.2 类模板的实例化1. 泛型编程 如何实现一个通用的交换函数呢?void Swap(int& left, int& right) { int temp = left; left = right; right = temp;}void Swap(d原创 2022-04-11 12:07:11 · 104 阅读 · 0 评论 -
C++内存管理
目录1. C/C++内存分布2. C语言中动态内存管理方式2.1 malloc/calloc/realloc和free3. C++中动态内存管理3.1 new/delete操作内置类型3.2 new和delete操作自定义类型4. operator new与operator delete函数4.1 operator new与operator delete函数(重点)4.2 operator new与operator delete的类专属重载(了解)5. new和d原创 2022-04-11 11:00:16 · 850 阅读 · 1 评论 -
C++类和对象练习题
1.求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:COJ链接(课堂讲解) class Add{ public: Add() { _ret += _i; _i++; } static int GetRet()原创 2022-04-09 18:01:54 · 862 阅读 · 0 评论 -
C++日期类的实现
目录1.日期类的定义:Date.h2.成员函数的实现:Date.cpp2.1准确获取某年某月有多少天2.2日期类构造函数(补充)2.3日期类拷贝构造2.4赋值运算符重载2.5+=运算符重载2.6+运算符重载2.7-=运算符重载2.8-运算符重载2.9前置++运算符重载(补充)2.10前置--运算符重载(补充)2.11后置-- 运算符重载2.12后置++运算符重载2.13>运算符重载2.14==运算符重载2.15>=运..原创 2022-04-06 21:07:32 · 2978 阅读 · 1 评论 -
C++类和对象(三)
目录1. 再谈构造函数1.1 构造函数体赋值1.2 初始化列表1.3 explicit关键字2.C++11 的成员初始化新玩法。3. 友元3.1 友元函数3.2 友元类4. static成员4.1 概念4.2 特性5. 内部类5.1概念及特性6. 再次理解封装7.再次理解面向对象1. 再谈构造函数 1.1 构造函数体赋值 在创建对象时,编译器通过调用构造函数,给对象中各个成员变量一个合适的初始值。 class Date{原创 2022-04-04 15:27:13 · 80 阅读 · 0 评论 -
C++类和对象(二)
目录1. 类的6个默认成员函数2. 构造函数2.1 概念2.2 特性3. 析构函数3.1 概念3.2 特性4. 拷贝构造函数4.1 概念4.2 特征5. 赋值操作符重载5.1 运算符重载5.2 赋值运算符重载6. 日期类的实现7. const成员函数7.1 const修饰类的成员函数8. 取地址及const取地址操作符重载1. 类的6个默认成员函数 如果一个类中什么成员都没有,简称为空类。空类中什么都没有吗?并不是的,任何一原创 2022-04-04 15:02:23 · 96 阅读 · 0 评论 -
C++类和对象(一)
1.面向过程和面向对象初步认识 C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。 C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。2.类的引入 C语言中,结构体中只能定义变量,在C++中,结构体内不仅可以定义变量,也可以定义函数。 struct Student{ void SetStudentInfo(const char* name, const char* gender, int age) {原创 2022-04-04 14:24:06 · 93 阅读 · 0 评论 -
C++入门(二)
6. 引用 6.1 引用概念 引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。类型& 引用变量名(对象名) = 引用实体;void TestRef(){ int a = 10; int& ra = a;//<====定义引用类型 printf("%p\n", &a); printf("%p\n", &ra);}发现a和b的地址相同,且可以继续取...原创 2022-04-01 16:56:26 · 836 阅读 · 0 评论 -
C++入门(一)
目录1. C++关键字2. 命名空间2.1 命名空间的定义2.2命名空间的使用2.2.1使用using namespace 命名空间名称引入2.2.2加命名空间名称及作用域限定符2.2.3使用using将命名空间中成员引入3. C++输入&输出4. 缺省参数4.1缺省参数的定义4.2 缺省参数的分类4.2.1全缺省参数4.2.2 半缺省参数4.2.3注意:5. 函数重载5.1 函数重载概念5.2 名字修饰(name Ma...原创 2022-03-31 21:35:24 · 907 阅读 · 0 评论