⚠️ 被 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】。