21:将合法性检查与元素获取的返回语句分离开来,代码更清晰易读,当执行到第二条语句时,已确保p是存在的vector,curr是合法的位置,可安全地获取元素并返回。这种清晰的结构也更有利于修改不同的处理逻辑。
22:将构造函数定义为const即可
23:知识点1:大多数的应用应该使用标准库容器,而不是使用动态分配的数组
知识点2:用new分配的动态数组会返回一个元素类型的指针,而并未得到数组类型的对象
知识点3:
本文介绍了C++ Primer第五版第十二章的习题解答,涉及动态内存管理、标准库容器和智能指针的知识。讨论了动态数组的使用、合法性和元素获取,强调了标准库容器相对于动态数组的优势。还提到了动态数组与begin()、end()函数的不适用性,以及释放动态数组的正确方法。此外,文章还提及了字符串字面常量的生命周期特性。通过习题解析,阐述了new运算符在内存分配与对象构造的关系,以及allocator在内存管理中的作用,包括构造和销毁对象的过程。最后,文章以一个补充内容提及使用lambda表达式优化while循环的技巧。
21:将合法性检查与元素获取的返回语句分离开来,代码更清晰易读,当执行到第二条语句时,已确保p是存在的vector,curr是合法的位置,可安全地获取元素并返回。这种清晰的结构也更有利于修改不同的处理逻辑。
22:将构造函数定义为const即可
23:知识点1:大多数的应用应该使用标准库容器,而不是使用动态分配的数组
知识点2:用new分配的动态数组会返回一个元素类型的指针,而并未得到数组类型的对象
知识点3:
659