12.15 — std::optional
在课程中,我们讨论了函数遇到自身无法合理处理的错误的情况。例如,考虑一个计算并返回值的函数:int doIntDivision(int x, int y) { return x / y; } 如果调用者传入的值在语义上…
在课程中,我们讨论了函数遇到自身无法合理处理的错误的情况。例如,考虑一个计算并返回值的函数:int doIntDivision(int x, int y) { return x / y; } 如果调用者传入的值在语义上…
什么是 C++23?2023 年 2 月,ISO(国际标准化组织)批准了新版 C++,名为 C++23。C++23 的新改进 为了您的兴趣,这里列出了 C++23 增加的主要变化。请注意,此列表并非详尽无遗,而是旨在突出…
当我们需要将 `std::vector` 传递给函数时,我们通过(常量)引用传递它,这样就不会对数组数据进行昂贵的复制。因此,您可能会惊讶地发现,按值返回 `std::vector` 是可以的。你说什么?复制…
干得好。函数模板看起来可能相当复杂,但它们是使代码与不同类型对象一起工作的强大方式。我们将在未来的章节中看到更多模板内容,所以请系好安全带。章回顾允许我们创建多个函数…
如果我们需要在多个函数或文件中使用随机数生成器会发生什么?一种方法是在 `main()` 函数中创建(并播种)我们的 PRNG,然后将其传递到所有需要它的地方。但这对于我们可能只偶尔使用的东西来说,传递太多了……
在上一课中,我们定义了什么是常量表达式,讨论了为什么常量表达式是理想的,并总结了常量表达式何时在编译时实际求值。在本课中,我们将更深入地了解如何在现代 C++ 中创建可在常量表达式中使用的变量。
运算符符号形式含义条件运算符 ?: c ? x : y 如果条件 c 为真,则计算 x,否则计算 y。条件运算符 (?:)(有时也称为算术 if 运算符)是一个三元运算符(接受 3 个操作数的运算符)。因为它在历史上是 C++ 唯一的…
在某些情况下,编写的函数在用某些类型的值调用时,其行为可能与预期不符。考虑以下示例:#include <iostream> void printInt(int x) { std::cout << x << ‘\n’; } int main() { printInt(5); // 正常:打印 5 printInt(‘a’); // 打印 97 — …