
C++
文章平均质量分 88
高厉害
此人真的真的非常懒,什么都没有写。
展开
-
【C++ 系列笔记】07 C++ STL - 算法
STL函数对象(仿函数)函数对象是重载函数调用操作符的类实例。函数对象根据参数数量可被称为 N 元仿函数,N 为函数对象调用所需参数个数。重载 () 符号:class Type { public: void operator()(/* args */);};调用:Type objFun();objFun();// 匿名对象Type()();函数对象可以实现闭包:class Counter { private: long count; pub原创 2021-01-06 19:47:08 · 169 阅读 · 1 评论 -
【C/C++】非静态成员初始化器,类内为什么不允许使用圆括号的方式初始化?
C++ 期末考了这道题:我惊讶地发现,int a(0), b(0); 是错误的。我们知道,自 C++11 起已经支持非静态成员变量的类内初始化了。而对基本数据类型的初始化形式 int a(0); 也是没有争议的,那么为什么类内初始化是不被允许的?我找到了这篇文章:Non-static data member initializers(非静态数据成员初始化器)大概说的是一些语义不清晰的问题。有时候我们无法避免下列情况。Problem 1:Unfortunately, this makes i原创 2020-07-16 10:59:41 · 1276 阅读 · 0 评论 -
【C++ 系列笔记】06 C++ STL - 算法基础
ContentSTL函数对象(仿函数)谓词内建函数对象适配器函数对象适配器基本步骤:底层实现取反适配器函数指针适配器成员函数适配器算法遍历遍历`for_each`计算`accumulate`增删改、替换、拷贝拷贝`copy`替换`replace`替换`replace_if`交换`swap`拷贝`transform`拼接`merge`填充`fill`查找查找`find`查找`find_if`查找`adjacent_find`查找`binary_search`数量`count`数量`count_if`顺序操作排原创 2020-06-14 17:29:29 · 799 阅读 · 0 评论 -
【C++】函数对象适配器及其底层原理
函数对象适配器bind1st bind2nd函数对象适配器用于扩展函数对象的功能,提供额外传入参数的方法。例如,我现在有一个一元谓词:class Pred { public: bool operator()(int a) { // ... }};现在调用某算法,该算法会使用这个一元谓词。algorithm(..., ..., Pred());但与此同时,我们希望这个谓词可以额外实现一个功能,而这个功能依赖一个临时传入的参数。于是改了谓词的实现:b原创 2020-06-13 21:45:37 · 378 阅读 · 0 评论 -
【C++ 系列笔记】06 C++ STL - 常用容器
ContentSTL介绍简介容器算法迭代器常用容器string 容器vector 容器deque 容器stack 容器queue 容器list 容器set/multiset 容器set 容器multiset 容器map/multimap 容器容器总结迭代器类型底层实现性能STL介绍简介(Standard Template Library)标准模板库广义上分为三类:容器(container)算法(algorithm)迭代器(iterator)六大组件:容器一种类模板,有各种数据结原创 2020-06-13 13:59:38 · 420 阅读 · 0 评论 -
【C++ 系列笔记】05 C++ 类型转换、异常处理、I/O 流
Content补充知识C++ 类型转换静态转换`static_cast<>()`动态转换`dynamic_cast<>()`常量转换`const_cast<>()`重新解释转换`reinterpret_cast<>()`C++ 异常处理基本语法异常基本处理C++ 标准异常库C++ I/O 流基本介绍标准输入流标准输出流文件 I/O 流补充知识C++ 类型转换静态转换static_cast<>()允许转换指针、引用及普通变量基础类型d原创 2020-06-11 00:13:58 · 791 阅读 · 0 评论 -
【C++ 系列笔记】04 C++ 泛型编程
Content泛型编程函数模板函数模板模板实现机制模板具体化类模板类模板的类外实现类模板的分文件编写类模板实例做函数参数类模板与友元模板中的继承泛型编程模板是泛型的实现,泛型是模板的思想。泛型的本质是类型的参数化。函数模板函数模板基本语法template<class T>void function(T param1, T param2){ // ...}template<typename T>void function(T param1, T pa原创 2020-06-11 00:06:22 · 363 阅读 · 0 评论 -
【C++ 系列笔记】03 C++ 面向对象进阶
C++ 面向对象进阶继承 - 基础class Base;class Type :public Base{ public: Type(a, b, c):Base(a, b){ // ... }};继承方式( 派生类均不可访问基类私有成员 )public(父类访问权限不变)最常用的方式private(父类访问权限全变成私有)当不希望本类对象访问基类任何成员时,可以考虑使用 private 继承。protected(父类访问权限全变成保护)使用 p原创 2020-06-06 18:43:25 · 390 阅读 · 0 评论 -
【C++ 系列笔记】02 C++ 面向对象基础
ContentC++ 面向对象基础面向对象基础构造函数和析构函数匿名对象拷贝构造函数深拷贝和浅拷贝初始化列表类对象作为成员(组合)explicit 关键字C++ 的动态内存分配(动态创建对象)常量对象调用方法类和对象的内存结构内存结构this 指针友元运算符重载C++ 面向对象基础面向对象基础class Type { private: /* data */ public: Type(/* args */); ~Type(); protected:};Ty原创 2020-06-06 14:58:00 · 197 阅读 · 0 评论 -
【C++ 系列笔记】01 C++ 与 C
ContentC++ 与 CHello world!命名空间(作用域)C → C++ 异同引用C++11 的右值引用内联函数函数的默认参数函数的占位参数函数重载C++ 与 CHello world!#include <iostream>using namespace std;int main() { cout << "Hello world!" << endl; system("pause"); return EXIT_SUCCESS;原创 2020-06-04 18:51:32 · 192 阅读 · 0 评论