<div id="img" align=center>
[![视频教程](https://img.shields.io/badge/%E8%A7%86%E9%A2%91%E6%95%99%E7%A8%8B-bilibili-cyan)](https://www.bilibili.com/video/BV1Zj411r7eP)
[![QQ 群](https://img.shields.io/badge/QQ%E7%BE%A4-%E5%8D%A2%E7%91%9F%E5%B8%9D%E5%9B%BD-blue)](https://qm.qq.com/cgi-bin/qm/qr?k=X-ouAYdQzPDQGUR7R-vECHDpXb7Uihdm&jump_from=webapi&authKey=5XYoNIfb913mo5Ff3P1nOhVy1pJgCM4Q6wAykQ+rpiDQSRu+tCXMN6yGOkjxIIrl)
[![知乎](https://img.shields.io/badge/%E7%9F%A5%E4%B9%8E-mq%E7%99%BD-yello)](https://www.zhihu.com/people/o4ze4r)
[![youtube](https://img.shields.io/badge/video-YouTube-red)](https://www.youtube.com/channel/UCey35Do4RGewqr-6EiaCJrg)
[![modern cpp](https://img.shields.io/badge/code-Modern%20C++-blue)](https://learn.microsoft.com/zh-cn/cpp/cpp/welcome-back-to-cpp-modern-cpp)
[![cpp2b](https://img.shields.io/badge/std-C++20/23/26-yello)](https://zh.cppreference.com/w/cpp/compiler_support)
[![gcc](https://img.shields.io/badge/compiler-GCC13-white)](https://gcc.gnu.org/onlinedocs/13.2.0/)
[![msvc](https://img.shields.io/badge/compiler-MSVC19.37-white)](https://learn.microsoft.com/zh-cn/cpp/cpp)
[![clang](https://img.shields.io/badge/compiler-clang17-white)](https://releases.llvm.org/17.0.1/tools/clang/docs/)
</div>
<div id="img" align=center>
<a herf="https://zh.cppreference.com/w/cpp"><img src="image/cpp.svg" width=64px alt="cpp"/></a>
</div>
<details>
<summary>目录</summary>
- [前言](#前言)
- [`01` 实现管道运算符](#01-实现管道运算符)
+ [运行结果](#运行结果)
+ [群友提交](#群友提交-0)
+ [标准答案](#标准答案-0)
+ [解析](#解析-0)
- [`02` 实现自定义字面量 `_f`](#02-实现自定义字面量-_f)
+ [运行结果](#运行结果-1)
+ [群友提交](#群友提交-1)
+ [标准答案](#标准答案-1)
+ [解析](#解析-1)
- [`03` 实现 `print` 以及特化 `std::formatter`](#03-实现-print-以及特化-stdformatter)
+ [运行结果](#运行结果-2)
+ [群友提交](#群友提交-2)
+ [标准答案](#标准答案-2)
+ [解析](#解析-2)
- [`04` 给定类模板修改,让其对每一个不同类型实例化有不同 ID](#04-给定类模板修改让其对每一个不同类型实例化有不同-id)
+ [运行结果](#运行结果-3)
+ [群友提交](#群友提交-3)
+ [标准答案](#标准答案-3)
- [`05` 实现 `scope_guard` 类型](#05-实现-scope_guard-类型)
+ [运行结果](#运行结果-4)
+ [群友提交](#群友提交-4)
+ [标准答案](#标准答案-4)
- [`06` 解释 `std::atomic` 初始化](#06-解释-stdatomic-初始化)
+ [群友提交](#群友提交-5)
+ [标准答案](#标准答案-5)
- [`07` `throw new MyException`](#07-throw-new-myexception)
+ [运行结果](#运行结果-5)
+ [群友提交](#群友提交-6)
+ [标准答案](#标准答案-6)
- [`08` 定义`array`推导指引](#08-定义array推导指引)
+ [运行结果](#运行结果-6)
+ [群友提交](#群友提交-7)
+ [标准答案](#标准答案-7)
- [`09` 名字查找的问题](#09-名字查找的问题)
+ [运行结果](#运行结果-7)
+ [群友提交](#群友提交-8)
+ [标准答案](#标准答案-8)
- [`10` 遍历任意类数据成员](#10-遍历任意类数据成员)
+ [运行结果](#运行结果-8)
+ [群友提交](#群友提交-9)
+ [标准答案](#标准答案-9)
- [`C++17` 写法](#c17-写法)
- [`C++20` 写法](#c20-写法)
+ [补充说明](#补充说明-0)
- [`11` `emplace_back()` 的问题](#11-emplace_back-的问题)
+ [群友提交](#群友提交-10)
+ [标准答案](#标准答案-10)
- [`12` 实现`make_vector()`](#12-实现make_vector)
+ [运行结果](#运行结果-9)
+ [群友提交](#群友提交-11)
+ [标准答案](#标准答案-11)
- [运行结果](#运行结果-10)
- [`13` 关于 `return std::move`](#13-关于-return-stdmove)
+ [群友提交](#群友提交-12)
+ [标准答案](#标准答案-12)
- [`14` 以特殊方法修改命名空间中声明的对象](#14-以特殊方法修改命名空间中声明的对象)
+ [运行结果](#运行结果-11)
+ [群友提交](#群友提交-13)
+ [标准答案](#标准答案-13)
- [利用符号来解决](#利用符号来解决)
- [直接修改内存](#直接修改内存)
- [利用名字查找规则](#利用名字查找规则)
- [`15` 表达式模板](#15-表达式模板)
+ [群友提交](#群友提交-14)
+ [标准答案](#标准答案-14)
+ [解析](#解析-3)
- [`16` 通透函数宏](#16-制造传递函数模板的宏)
+ [群友提交](#群友提交-15)
+ [标准答案](#标准答案-15)
</details>
<!-- []: https://zh.cppreference.com/w/ -->
[Mq-b/Cookbook/7.6]: https://github.com/Mq-b/Cpp20-STL-Cookbook-src#76%E4%BD%BF%E7%94%A8%E6%A0%BC%E5%BC%8F%E5%BA%93%E6%A0%BC%E5%BC%8F%E5%8C%96%E6%96%87%E6%9C%AC
[cpp/language/range-for]: https://zh.cppreference.com/w/cpp/language/range-for
[cpp/utility/functional/function]: https://zh.cppreference.com/w/cpp/utility/functional/function
[cpp/utility/tuple]: https://zh.cppreference.com/w/cpp/utility/tuple
[cpp/ranges/range]: https://zh.cppreference.com/w/cpp/ranges/range
[cpp/language/user_literal]: https://zh.cppreference.com/w/cpp/language/user_literal
---
## 前言
**卢瑟们的作业展示。**
[提交 PR](提交pr教程.md) 不应当更改当前 `README`,请将作业提交到 `src\群友提交` 中,比如你要提交第一个作业:
你应当在 `src\群友提交\第01题` 中创建一个自己的 `.md` 或 `.cpp` 文件,**文件名以自己交流群 ID 命名(或 GitHub 用户名都可,方便找到本人即可)**。
答题的**一般要求**如下(题目额外要求也自行注意看):
1. 不更改 `main` 函数,不得使其不运行(意思别捞偏门)。
2. 自行添加代码,在满足第一点的要求下,要能成功编译运行并与 **给出运行结果一致**。
## `01` 实现管道运算符
日期:**`2023/7/21`** 出题人:**`mq白`**
给出代码:
```cpp
int main(){
std::vector v{1, 2, 3};
std::function f {[](const int& i) {std::cout << i << ' '; } };
auto f2 = [](int& i) {i *= i; };
v | f2 | f;
}
```
### 运行结果
```text
1 4 9
```
- 难度:**★☆☆☆☆**
<details id="群友提交-0">
<summary>群友提交</summary>
### [群友提交](src/群友提交/第01题)
答题者:[**`andyli`**](src/群友提交/第01题/andyli.cpp)
```cpp
#include <algorithm>
#include <vector>
#include <functional>
#include <iostream>
template <typename R, typename F>
auto operator|(R&& r, F&& f) {
for (auto&& x: r)
f(x);
return r;
}
int main() {
std::vector v{1, 2, 3};
std::function f{[](const int& i) { std::cout << i << ' '; }};
auto f2 = [](int& i) { i *= i; };
v | f2 | f;
}
```
> 很常规,没啥问题。
答题者:[**`mq松鼠`**](src/群友提交/第01题/mq松鼠.cpp)
```cpp
#include <iostream>
#include <vector>
#include <functional>
auto operator | (std::vector<int>&& v,std::function<void(const int&)> f){
for(auto&i:v){
f(i);
}
return v;
}
auto operator | (std::vector<int>& v,std::function<void(int&)> f){
for(auto&i:v){
f(i);
}
return v;
}
int main(){
std::vector v{1, 2, 3};
std::function f {[](const int& i) {std::cout << i << '\n'; } };
auto f2 = [](int& i) {i *= i; };
v | f2 | f;
}
```
> 评价:闲的没事多写个重载,裱起来。
</details>
<details id="标准答案-0">
<summary>标准答案</summary>
### 标准答案
```cpp
template<typename U, typename F>
requires std::regular_invocable<F, U&>//可加可不加,不会就不加
std::vector<U>& operator|(std::vector<U>& v1, F f) {
for (auto& i : v1) {
f(i);
}
return v1;
}
```
**不使用模板**:
```cpp
std::vector<int>& operator|(std::vector<int>& v1, const std::function<void(int&)>& f) {
for (auto& i : v1) {
f(i);
}
return v1;
}
```
不使用范围 `for`,使用 C++20 简写函数�
没有合适的资源?快使用搜索试试~ 我知道了~
卢瑟们的作业展示,答案讲解,以及一些C++知识.zip
共372个文件
cpp:160个
md:57个
png:38个
需积分: 1 0 下载量 197 浏览量
2024-03-08
11:09:40
上传
评论
收藏 9.69MB ZIP 举报
温馨提示
卢瑟们的作业展示,答案讲解,以及一些C++知识.zip卢瑟们的作业展示,答案讲解,以及一些C++知识.zip卢瑟们的作业展示,答案讲解,以及一些C++知识.zip卢瑟们的作业展示,答案讲解,以及一些C++知识.zip卢瑟们的作业展示,答案讲解,以及一些C++知识.zip卢瑟们的作业展示,答案讲解,以及一些C++知识.zip卢瑟们的作业展示,答案讲解,以及一些C++知识.zip卢瑟们的作业展示,答案讲解,以及一些C++知识.zip卢瑟们的作业展示,答案讲解,以及一些C++知识.zip卢瑟们的作业展示,答案讲解,以及一些C++知识.zip卢瑟们的作业展示,答案讲解,以及一些C++知识.zip卢瑟们的作业展示,答案讲解,以及一些C++知识.zip卢瑟们的作业展示,答案讲解,以及一些C++知识.zip卢瑟们的作业展示,答案讲解,以及一些C++知识.zip卢瑟们的作业展示,答案讲解,以及一些C++知识.zip卢瑟们的作业展示,答案讲解,以及一些C++知识.zip卢瑟们的作业展示,答案讲解,以及一些C++知识.zip卢瑟们的作业展示,答案讲解,以及一些C++知识.zip卢瑟们的作业展示,答案讲解,
资源推荐
资源详情
资源评论
收起资源包目录
卢瑟们的作业展示,答案讲解,以及一些C++知识.zip (372个子文件)
_filter_repo_commit_map_1705194650 56KB
kurisu.cc 639B
kurisu.cc 634B
27Onion.cc 486B
Ninter6.cc 446B
kurisu.cc 358B
FindLatexmk.cmake 7KB
CheckLoserHomeWork.cmake 6KB
xdgmime.cmake 968B
Slugify.cmake 589B
FindPowerShell.cmake 222B
FindBASH.cmake 192B
CODEOWNERS 109B
akchilov2.cpp 10KB
Matrix-A.cpp 10KB
Matrix-A.cpp 4KB
akchilov.cpp 4KB
蓝弧.cpp 4KB
494199.cpp 3KB
涼風青葉.cpp 3KB
encodingcheck.cpp 3KB
MrDotXin.cpp 3KB
main_10.cpp 3KB
mq败.cpp 3KB
jacky.cpp 3KB
akchilov3.cpp 2KB
Wgtteol.cpp 2KB
Matrix-A-reflect.cpp 2KB
伊凡Gogh.cpp 2KB
子魂.cpp 2KB
mq日.cpp 2KB
happyd0g.cpp 2KB
zymelaii.cpp 2KB
loser_linker.cpp 2KB
jacky.cpp 2KB
Wgtteol.cpp 2KB
mifeng.cpp 2KB
zymelaii.cpp 2KB
子魂.cpp 2KB
涼風青葉.cpp 2KB
akchilov.cpp 2KB
loser_linker.cpp 2KB
jacky.cpp 2KB
革匊习习中.cpp 2KB
mq松鼠.cpp 2KB
Matrix-A-2.cpp 1KB
心洗.cpp 1KB
蓝弧.cpp 1KB
FredBill.cpp 1KB
wstring.cpp 1KB
andyli.cpp 1KB
mickey_11.cpp 1KB
涼風青葉.cpp 1KB
Matrix-A.cpp 1KB
Wgtteol.cpp 1KB
jacky.cpp 1KB
happyd0g.cpp 1KB
yuzhiy.cpp 1KB
蓝弧.cpp 1KB
mq松鼠.cpp 1006B
loser_linker.cpp 995B
mickey_8.cpp 976B
心洗.cpp 961B
mq松鼠.cpp 945B
涼風青葉.cpp 915B
心洗.cpp 910B
蓝弧.cpp 908B
Ninter6.cpp 908B
蓝弧.cpp 908B
DarkSharpness.cpp 896B
子魂.cpp 891B
Ninter6.cpp 857B
andyli.cpp 845B
zymelaii.cpp 838B
Matrix-A-1.cpp 801B
Matrix-A-P1061.cpp 799B
金兔兔.cpp 783B
mq日.cpp 782B
loser_linker.cpp 780B
joe.cpp 775B
loser_linker.cpp 770B
joe.cpp 765B
jacky.cpp 758B
子魂.cpp 749B
涼風青葉.cpp 749B
Wgtteol.cpp 746B
happyd0g.cpp 744B
Wgtteol.cpp 725B
涼風青葉.cpp 705B
子魂.cpp 697B
SocialMean.cpp 676B
jacky.cpp 657B
PlanC.cpp 651B
mq松鼠.cpp 649B
Junity.cpp 639B
mq日.cpp 632B
SocialMean.cpp 626B
心洗.cpp 617B
jacky.cpp 590B
mq日.cpp 589B
共 372 条
- 1
- 2
- 3
- 4
资源评论
「已注销」
- 粉丝: 670
- 资源: 152
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- GVC-全球价值链参与地位指数,基于ICIO表,(Wang等 2017a)计算方法
- 易语言ADS指纹浏览器管理工具
- 易语言奇易模块5.3.6
- cad定制家具平面图工具-(FG)门板覆盖柜体
- asp.net 原生js代码及HTML实现多文件分片上传功能(自定义上传文件大小、文件上传类型)
- whl@pip install pyaudio ERROR: Failed building wheel for pyaudio
- Constantsfd密钥和权限集合.kt
- 基于Java的财务报销管理系统后端开发源码
- 基于Python核心技术的cola项目设计源码介绍
- 基于Python及多语言集成的TSDT软件过程改进设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功