⚠️ 被 move 走之后,那个对象还剩什么

一个 std::string 被 move 走之后,它【0】。

开始练习 →

什么时候该写 `std::move`

把一个局部变量交给容器或函数、而且**以后不再用它**时,该写 std::move,因为【0】。

开始练习 →

🔴 一次拷贝、一次移动,摆在一起

(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)⚠️ 这一节的计数**只数标准强制的那几种**(传值/push_back 一个左值算拷贝,push_back 一个 std::move 过的算移动),**不数返回值和

开始练习 →

让第二次走"搬"那条路

(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)⚠️ 这一节的计数**只数标准强制的那几种**(传值/push_back 一个左值算拷贝,push_back 一个 std::move 过的算移动),**不数返回值和

开始练习 →

⚠️ 独占的东西,只能搬

(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)

开始练习 →

🔴 传参也一样,一句话决定拷还是搬

(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)⚠️ 这一节的计数**只数标准强制的那几种**(传值/push_back 一个左值算拷贝,push_back 一个 std::move 过的算移动),**不数返回值和

开始练习 →

⚠️ move 完的那个,用之前先问一句

(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)第三个数:a 是空的就给 -1,不是空的就给它的值。

开始练习 →

用 STL 算法替掉裸循环,好处是什么

把一个手写的 for 循环换成 std::sort 这类算法,最实在的好处是【0】。

开始练习 →

⚠️ lambda 的方括号里写什么

[line](int x) { return x > line; } 里方括号那部分,管的是【0】。

开始练习 →

🔴 `[x]` 和 `[&x]` 差在哪

捕获写成 [x] 和 [&x],差别是【0】。

开始练习 →