STL 容器使用技巧和注意事项
5星 · 超过95%的资源 需积分: 29 75 浏览量
更新于2024-07-26
收藏 1.46MB PDF 举报
Effective STL
Effective STL 是一本关于标准模板库(STL)的经典书籍,涵盖了 STL 的各种知识点。本书的主要内容包括容器、算法、迭代器、函数对象、_adapter 和配置器等方面。
**容器**
容器是 STL 的核心组件之一,提供了多种数据结构来存储和管理数据。 Effective STL 中提到了以下几点关于容器的知识点:
1. 选择合适的容器:不同的容器适合不同的场景,选择合适的容器可以提高程序的效率和可读性。
2. 避免 container-independent 代码:虽然 STL 提供了多种容器,但是不同的容器有其特点和限制,需要根据实际情况选择合适的容器。
3. 使对象的拷贝cheap 和 correct:在容器中存储对象时,需要确保对象的拷贝操作是cheap 和 correct。
4. 使用 empty() 而不是 size() == 0:在检查容器是否为空时,使用 empty() 方法比 size() == 0 更加高效。
5. 优先使用成员函数而不是单元素操作: STL 提供了多种成员函数来操作容器,优先使用成员函数可以提高程序的效率和可读性。
6. 小心 C++ 的最讨厌的解析: C++ 的语法规则可能会导致一些难以 debug 的问题,需要小心 C++ 的解析规则。
7. 在容器中存储 new 的指针时,记住删除指针:在容器中存储 new 的指针时,需要在容器销毁前删除指针,以避免内存泄露。
8. 从不创建 auto_ptr 的容器: auto_ptr 是 C++98 中的一个类,已经被废弃,不建议使用。
9. 选择删除选项:在删除容器中的元素时,需要选择合适的删除选项,以避免内存泄露和其他问题。
10. 配置器约定和限制: STL 的配置器有其约定和限制,需要了解这些约定和限制以避免问题。
** vector 和 string**
vector 和 string 是 STL 中两个最常用的容器,提供了多种操作来管理数据。 Effective STL 中提到了以下几点关于 vector 和 string 的知识点:
11. 优先使用 vector 和 string 而不是动态分配的数组: vector 和 string 提供了多种操作来管理数据,优先使用它们可以提高程序的效率和可读性。
12. 使用 reserve 来避免不必要的重新分配:在使用 vector 和 string 时,需要使用 reserve 来避免不必要的重新分配,以提高程序的效率。
13. 了解 string 实现的差异:不同的编译器和平台可能会有不同的 string 实现,需要了解这些差异以避免问题。
14. 知道如何将 vector 和 string 数据传递给遗留 API:在将 vector 和 string 数据传递给遗留 API 时,需要了解其中的差异和限制。
15. 使用"swap trick"来 trim excess capacity:在使用 vector 和 string 时,可以使用"swap trick"来 trim excess capacity,以提高程序的效率。
Effective STL 提供了多种关于 STL 的知识点,涵盖了容器、算法、迭代器、函数对象、_adapter 和配置器等方面,是一本非常有价值的参考书籍。
2019-01-02 上传
2013-04-18 上传
2010-07-21 上传
2010-01-08 上传
2008-05-30 上传
2012-02-17 上传
2024-11-14 上传
chaiwp03
- 粉丝: 0
- 资源: 7
最新资源
- 高清艺术文字图标资源,PNG和ICO格式免费下载
- mui框架HTML5应用界面组件使用示例教程
- Vue.js开发利器:chrome-vue-devtools插件解析
- 掌握ElectronBrowserJS:打造跨平台电子应用
- 前端导师教程:构建与部署社交证明页面
- Java多线程与线程安全在断点续传中的实现
- 免Root一键卸载安卓预装应用教程
- 易语言实现高级表格滚动条完美控制技巧
- 超声波测距尺的源码实现
- 数据可视化与交互:构建易用的数据界面
- 实现Discourse外聘回复自动标记的简易插件
- 链表的头插法与尾插法实现及长度计算
- Playwright与Typescript及Mocha集成:自动化UI测试实践指南
- 128x128像素线性工具图标下载集合
- 易语言安装包程序增强版:智能导入与重复库过滤
- 利用AJAX与Spotify API在Google地图中探索世界音乐排行榜