C++
文章平均质量分 92
亲亲老婆几
这个作者很懒,什么都没留下…
展开
-
【科普】C++标准与标准委员会,你不得不知的那些事
文章目录ISO标准C 委员会 与 C++ 委员会如何制定标准C++ 的实现参考ISO标准这里直接照搬百度百科:https://baike.baidu.com/item/ISO%E6%A0%87%E5%87%86/9818656?fr=aladdinISO标准是指由『 国际标准化组织 (International Organization for Standardization), ISO 』制订的标准。 国际标准化组织是一个由国家标准化机构组成的世界范围的联合会,现有140个成员国。根据该组织章程,每原创 2022-03-17 00:43:35 · 4611 阅读 · 0 评论 -
谈谈C++预定义宏
文章目录参考预定义宏`#` 与 `##`关于 `__func__`参考Cppreference:https://zh.cppreference.com/w/cpp/preprocessor/replace微软家(MSVC):https://docs.microsoft.com/en-us/cpp/preprocessor/predefined-macros?redirectedfrom=MSDN&view=msvc-170GCC文档:https://gcc.gnu.org/online原创 2022-01-30 20:40:31 · 789 阅读 · 0 评论 -
move 和 forward
关键的话:std::move 并不进行任何移动,std::forward 也不进行任何转发。move 和 forward 在运行期都无所作为。不会生成任何可执行代码,连一个字节都不会生成。函数形参永远是左值。 具名变量永远是左值。但是不具名的变量不一定是右值。(例如字符串字面量 “hello world” 也是左值)参考:https://zh.cppreference.com/w/cpp/language/identifiers命名某个变量、函数、概念的特化 (C++20 起)或枚举项的标识符原创 2022-01-23 17:19:10 · 1036 阅读 · 0 评论 -
Essential C++ 读书笔记
文章目录cerr标准库定义的 function objectadapterbinder adapterinsertion adaptercerr参考:https://zh.cppreference.com/w/cpp/io/cerrcerr代表标准错误设备(standard error)。和cout一样,cerr将其输出结果定向到用户的终端。两者的唯一差别是,cerr的输出结果并无缓冲(bufferred)情形——它会立即显示于用户终端中。标准库定义的 function object六个算数运算原创 2022-01-12 23:24:27 · 521 阅读 · 0 评论 -
再谈 C++ 多态(Polymorphism)
文章目录多态的本质使用虚函数的例子:不带继承的多态:C++模板多态的本质个人的理解:多态的本质是让我们得以用一种与类型无关(type-independent)的方式来操作这些类对象。参考 Essential C++ P137百度百科:在编程语言和类型论中,多态(英语:polymorphism)指为不同数据类型的实体提供统一的接口。 多态类型(英语:polymorphic type)可以将自身所支持的操作套用到其它类型的值上。使用虚函数的例子:#include <iostream>原创 2022-01-12 19:15:14 · 471 阅读 · 0 评论 -
C++lambda表达式的类型
文章目录运算符重载转换函数不带 captures 的 lambda带 captures 的 lambda运算符重载参考:https://en.cppreference.com/w/cpp/language/operators如上参考链接,运算符重载大致有这样几种:其中 operator type 有些特殊,涉及到转换函数,不需要加 return type,见下。转换函数见我的笔记:https://blog.csdn.net/weixin_47652005/article/details/118原创 2022-01-09 22:29:41 · 1130 阅读 · 0 评论 -
基于VSCode和CMake实现C/C++开发 | Linux篇
文章目录前言前言课程地址:https://www.bilibili.com/video/BV1fy4y1b7TC微软官方《设置 WSL 开发环境的最佳做法》:https://docs.microsoft.com/zh-cn/windows/wsl/setup/environment以下两个可以参考,但我并没有看:WSL安装教程:https://www.bilibili.com/video/BV1aA411s7PJWSL官方文档:https://docs.microsoft.com/zh-cn/原创 2021-12-09 22:33:37 · 4475 阅读 · 0 评论 -
C++并发与多线程
文章目录前言1. 进程与线程2. 线程启动、结束,创建线程多法、join,detach重要补充:3. 线程传参详解,detach()大坑,成员函数做线程函数4. 创建多个线程、数据共享问题分析、案例代码5. 互斥量概念、用法、死锁演示及解决详解6. unique_lock详解7. 单例设计模式共享数据分析、解决,call_once8. condition_variable、wait、notify_one、notify_all9. async、future、packaged_task、promise10. f原创 2021-12-02 01:49:58 · 1750 阅读 · 0 评论 -
TheChernoCppTutorial
文章目录1. 欢迎来到C++1. 欢迎来到C++使用C++的最大原因是直接控制硬件。用C++写的代码,这些代码被送去编译器去编译,这些编译器将代码输出为目标平台的机器码。机器码是你的设备在CPU上实际执行的指令。使用C++我们完全可以控制CPU执行的每一条指令。C#和JAVA与cpp不同,是因为它们运行在虚拟机上,这意味着代码首先被编译成一种中间语言,当在目标平台运行应用程序时,虚拟机在程序运行时再转换成机器码。C++是本地语言(native language)。比如x64编译器将输出x64机器代码原创 2021-11-16 19:00:04 · 4122 阅读 · 1 评论 -
现代C++教程笔记(下)
文章目录前言第 6 章 正则表达式第 7 章 并行与并发第 8 章 文件系统第 9 章 其他杂项第 10 章 展望:C++20 简介前言链接:https://changkun.de/modern-cpp/为了方便,我直接用 VS2019 了,即用 Visual C++ 而没有用作者的 clang++ 测试。第 6 章 正则表达式第 7 章 并行与并发第 8 章 文件系统第 9 章 其他杂项第 10 章 展望:C++20 简介...原创 2021-09-30 22:06:49 · 598 阅读 · 0 评论 -
现代C++教程笔记(上)
文章目录前言第 1 章 迈向现代 C++第 2 章 语言可用性的强化constexpr:if/switch 变量声明强化初始化列表结构化绑定类型推导if constexpr面向对象委托构造和继承构造显式虚函数重载强类型枚举第 3 章 语言运行期的强化Lambdastd::functionstd::bind 和 std::placeholder右值引用第 4 章 容器tuple运行期索引——通过std::variant<>tuple合并与遍历tuple小结第 5 章 智能指针与内存管理std::s原创 2021-09-29 19:11:18 · 1288 阅读 · 0 评论 -
C++STL(下)——关联式容器(Associative Containers)与算法
文章目录前言1. RB tree深度探索2. set、multiset深度探索3. map、multimap深度探索注:4. hashtable深度探索(上)5. hashtable深度探索(下)6. unordered容器概念7. 算法的形式8. 迭代器的分类(category)9. 迭代器分类(category)对算法的影响10.前言本文为侯捷老师STL课程的一个笔记分享。课件来源:https://github.com/19PDP/Bilibili-plus/blob/master/C%2B%2原创 2021-08-30 21:52:29 · 1025 阅读 · 0 评论 -
C++STL(上)——开篇介绍、迭代器设计原则与序列式容器(Sequence Containers)
文章目录前言1. 开篇介绍2. STL体系结构基础介绍3. 容器的分类与各种测试测试array测试vector:测试list:测试forward_list:测试deque:测试stack:测试queue:测试multiset:测试multimap:测试unordered_multiset:测试unordered_multimap:测试set:测试map:测试unordered_set和unordered_map:4. 分配器之测试5. 源代码之分布6. OOP vs GP7. 基础:操作符重载与模板8. 分原创 2021-08-21 16:51:36 · 667 阅读 · 0 评论 -
C++新标准-C++11/14(第二讲:标准库部分)
文章目录1. 标准库源码分布2. Rvalue references3. Perfect Forwarding4. 写一个move aware class5. move aware class对容器效能的测试6. 容器结构与分类7. 容器array8. 容器hashtable9. unordered10. hash function1. 标准库源码分布2. Rvalue references右值引用,按理来说应当属于语言的部分,但是由于它接下去都会和标准库有关,所以放入第二讲:右值引用,为了解原创 2021-08-01 19:55:54 · 561 阅读 · 0 评论 -
C++新标准-C++11/14(第一讲:语言部分)
可变模板参数这在面向对象的课程就讲过了。原创 2021-07-31 20:38:39 · 506 阅读 · 0 评论 -
侯捷C++面向对象高级编程(下)笔记
侯捷C++面向对象高级编程(上)笔记1. 转换函数转换函数,一个是转出去(即类A可以不可以转换成别的对象),一个是转进来(即别的对象转为A)。黄色部分描述的函数,一定是operator开头,意义是Fraction类可以转为double,任何时候编译器需要转为double的时候就调用。因为后面已经写了double,因此这种转换函数是没有return type的。并且转换函数通常是不应该改变类内的成员变量,因此通常都会在后加上const. 从上节课程我们应该知道const该加就要加。对于double原创 2021-07-18 20:45:43 · 630 阅读 · 0 评论 -
侯捷C++面向对象高级编程(上)笔记
侯捷C++面向对象高级编程(上)笔记构造函数: 函数若在class body内定义完成,便为inline函数(内联函数) inline函数速度更快 也可以在内声明外用inline建议编译器设置为inline函数,但当函数复杂时是不会被设置为inline的(编译器没有能力) 类内赋值大气的写法是用初值列(初始列),大气且效率高.在大括号内就是赋值的写法了,两阶段:初始化,赋值…所以效率上用初始列效率高构造函数可以放在private中,很著名的写法就是单例模式(singleton)常量成员原创 2021-05-30 16:17:52 · 482 阅读 · 0 评论