category
type
status
date
slug
summary
tags
password
Property
Mar 18, 2024 03:12 PM
icon

1. 命令行参数读取与解析

  • 主要函数:getopt(),该函数由Unix标准库提供,包含在<unistd.h>头文件中。 函数定义:

    2. 字符串转整数

    • 主要函数:atio()【ascii to integer】,包含在<stdlib.h>头文件中

      3. 左值(lvalue)、右值(rvalue)及右值引用

      • 左值:表示一个占据内存中某个可识别的位置(也就是一个地址)的对象
      • 右值:一个表达式不是左值就是右值。那么右值是不表示内存中某个可以识别位置对象的表达式,右值只存在于计算过程中每个临时寄存器中。不能修改
      • C++11中引入右值引用 ,通过使用右值引用可以减少临时对象的创建,例如如下例子。
        • 一般引用实现的重载复制运算符:
        • 测试代码:
          使用一般引用实现的重载赋值运算符的临时创建对象如下:
        • 使用右值引用实现的重载赋值运算符:
        • 同样的测试代码的运行结果如下:

      4. 数组越界异常捕获

      • 提要:在C++中基本数组类型越界时系统是不会报异常的,如下列代码
      notion image
      • vector则会报越界异常
      • 直接使用a[4]系统会报异常但是try…catch…无法捕获异常,因为std::vector::operator[]不执行边界检查,属于典型的未定义行为(Undefined Behavior),这种情况下try/throw/catch不起作用,程序会崩溃。 而使用上面代码中的std::vector::at,它会执行边界检查,如果越界,会抛出std::out_of_range异常,所以在访问vector元素时,最好使用.at(),而不是[]

      开发技巧

      自定义hash函数

      CPP特性

      move semantic
      one of the main goal: increase performance, since moving an object is faster and more efficient than deep copying the object.【移动语义比深拷贝更高效】
      prerequisite knowledge:lvaluervalue
      A simplified definition of lvalues is that lvalues are objects that refer to a location in memory. Rvalues are anything that is not a lvalue.
      a simple case:
      notion image
      notion image
       
       
      MySQL的事务隔离机制online notes
      • Twikoo
      • Giscus