什么是容器类
来源:互联网 发布:在淘宝怎样搜到冰毒 编辑:程序博客网 时间:2024/04/28 23:28
FAQ 2.15
在C++中模板是最强大的代码复用机制.模板最普通的用法是容器,容器是用来创建包含其他对象的对象。有许多不同的容器模板,包括链接的列表(list),向量(vectors)也就是(arrays),sets,和maps。容器模板让程序员在使用前人总结的精炼的数据结构中获益。例如二进制树,总是保持平衡,哈希表(hash tables),跳跃表(skip lists),伸展树(splay trees),而且不用知道这些数据结构的细节。
模板首先看起来挺有趣,一但你使用它就会发现,它和普通的类没有太大的区别,仅仅奇怪的地方是三角框:一个向量Car被声明为vector<Car>.typedef语法用来使使用更加方便:它用来创建更容易理解的符号就像:CarList。
#include <vector> <-- 1#include <string> <-- 2#include <algorithm>using namespace std;#include "Car.hpp" <-- 3typedef vector<Car> CarList; <-- 4typedef vector<string> StringList; <-- 5int main(){ CarList x; <-- 6 Car a, b, c; x.push_back(a); <-- 7 x.push_back(b); x.push_back(c); // ... StringList y; <-- 8 y.push_back("Foo"); <-- 9 y.push_back("Bar"); y.push_back("Baz"); sort(y.begin(), y.end()); <-- 10 // ...}
(1) 包含标准向量模板
(2) 包含标准字符串模板
(3) 包含用户定义的Car类
(4) 同义转化
(5) 同义转化
(6) 创建一个Car对象向量
(7) 将a对象追加到 向量 CarList的对象x中
(8) 创建一个string对象向量
(9) 追加 string "Foo" 到 向量StringList的对象y中
(10) 对字符串向量对象y排序
这个例子中创建了两个向量对象:x是一个Car向量对象,y是一个string向量对象。这类似于C-like中的数组(car X[3]; and string y[3];),但是向量对象是更加灵活,他们可以增长到任意的尺寸,他们是安全的,他们还有许多其他的功能。
UML用下面的符号展示实例化的vector<Car>和vector<string>模板向量。
- 什么是容器类
- 什么是容器?
- 什么是容器
- 什么是容器???
- 什么是WEB容器,什么是EJB容器
- [推荐学习]什么是IOC,什么是容器,什么是服务组件,它们和普通用户类的区别
- 什么是"轻量级"容器
- 什么是 web 容器
- 什么是Web容器
- 什么是Web容器
- 什么是Servlet容器
- 什么是Servlet容器?
- 什么是Web容器?
- 什么是Web容器?
- 什么是集合和容器
- 什么是Servlet容器
- 什么是Web容器
- 什么是Servlet容器?
- 关于TreeView的操作集合
- c#接口和抽象类的区别 (转)
- Struts Action 之 配置属性及其含义
- 勇往直前
- 一次失败的软件演示
- 什么是容器类
- Struts 常见问题与解决方法1
- C# 中的委托和事件(转)
- InttoChar
- 数据库设计技巧14则
- flash常见问题集锦,很适合新手哦[二]
- 网站推广方法大
- c语言代码格式化工具(unix/linux)
- 基于.Net Remoting的应用程序日志