提高 STL 编程效率的 17 条黄金法则
需积分: 29 192 浏览量
更新于2024-12-23
收藏 1.46MB PDF 举报
"Effective STL"
在 C++ 编程中,STL(Standard Template Library)是非常重要的一部分,它提供了许多有用的容器、算法和迭代器,帮助开发者更方便地编写高效的代码。然而,STL 的使用也需要一定的基础和经验,否则可能会带来一些问题。本文将根据 "Effective STL" 的内容,总结出一些重要的知识点,帮助开发者更好地掌握 STL 的使用。
首先,让我们来看一下容器的选择。Item1 中提到,选择合适的容器非常重要,需要根据实际情况选择合适的容器。例如,vector、list、deque 等容器都有其特点和优缺,需要根据实际情况选择合适的容器。
此外,Item2 中还提到,需要警惕容器独立代码的假象。在 C++ 中,容器的实现细节可以影响代码的性能和可读性,因此需要了解容器的实现细节,并根据实际情况选择合适的容器。
在 Item3 中,作者提到,需要使对象在容器中的拷贝操作尽量cheap和正确。这一点非常重要,因为对象的拷贝操作可能会带来性能问题。
Item4 中提到,需要使用 empty() 函数来检查容器是否为空,而不是使用 size() 函数来检查。这一点可以避免一些不必要的错误。
Item5 中还提到,需要优先使用成员函数,而不是使用单元素对应的函数。这一点可以提高代码的可读性和可维护性。
Item6 中提到,需要注意 C++ 的解析器可能会带来一些问题,例如最讨厌的解析错误。
在 Item7 中,作者提到,使用容器时需要注意指针的释放问题,否则可能会带来内存泄露的问题。
Item8 中提到,永远不要创建 auto_ptr 的容器,因为 auto_ptr 的行为可能会带来一些问题。
Item9 中提到,需要选择合适的删除选项,避免一些不必要的错误。
Item10 中提到,需要了解分配器的约定和限制,避免一些不必要的错误。
Item11 中提到,需要了解自定义分配器的合法使用场景,例如在某些特定的情况下,需要使用自定义分配器来提高性能。
Item12 中提到,需要了解 STL 容器的线程安全问题,避免一些不必要的错误。
在 Item13 中,作者提到,优先使用 vector 和 string,而不是使用动态分配的数组。这一点可以提高代码的可读性和可维护性。
Item14 中提到,需要避免不必要的重新分配操作,避免一些性能问题。
Item15 中提到,需要了解 string 实现的差异,避免一些不必要的错误。
Item16 中提到,需要了解如何将 vector 和 string 数据传递给遗留 API,避免一些不必要的错误。
Item17 中提到,需要了解“swap trick”的使用场景,例如在 trim excess capacity 时使用“swap trick”来提高性能。
使用 STL 需要注意许多细节问题,需要根据实际情况选择合适的容器,了解容器的实现细节,避免一些不必要的错误,并了解线程安全问题等。只有掌握了这些知识点,才能更好地使用 STL,提高代码的可读性和可维护性。
2013-04-18 上传
2019-01-02 上传
2010-07-21 上传
2013-03-24 上传
2012-02-17 上传
leftnoteasy
- 粉丝: 6
- 资源: 4
最新资源
- Python库 | slick_webdriver-1.0.51-py3-none-any.whl
- NRDFReactor-开源
- 易语言超级列表框操作源码-易语言
- Hoja-de-Trabajo-5:Hoja-de-Trabajo 5 2 ejercicios
- OOP-Java:Java语言nesneseyönelimprogramlama olarak gruparkadaşımileyapmışolduğumuzdönemprojesi
- Service.Liquidity.Converter
- reading-notes:实时网址
- genius-starter-files
- 易语言API拖放功能源码-易语言
- spyasuda.github.io:以工作项目组合为特色的专业网站
- brainsatplay.github.io:我们的Brains @ Play前端网站
- 0559、数字电子技术基础实验指导书.rar
- IMU_Calibration
- UltraNice.tsr9pfc273.gaspCeI
- Edustack
- man子手