[关闭]
@Arbalest-Laevatain 2018-12-25T11:23:16.000000Z 字数 651 阅读 565

标准模板库(一) 数组的代替vector、array

C++


模板类vector

特性:

1、可在运行阶段设置数组长度
2、可在中间插入数据
3、可在末尾插入新数据
4、使用new、delete管理内存

定义

需包含头文件vector

  1. vector<ElemType> ve(n);
  2. ////定义法一
  3. //创建了一个长为n,类型为ElemType的vector对象
  4. //n可以为常量,也可是变量,但必须是整型
  5. vector<Elemtype> v;
  6. ////定义法二

使用方法

  1. //返回元素数
  2. v.size();
  3. //在向量尾添加元素x
  4. v.push_back(x);
  5. //删除向量尾元素x
  6. v.pop_back(x);
  7. //返回指向队头的迭代器
  8. v.begin();
  9. //返回指向队尾的迭代器
  10. v.end();
  11. //在位置p插入元素x
  12. v.insert(p,x);
  13. //删除位置p的元素
  14. v.erase(p);
  15. //清除所有元素
  16. v.clear();

注意:
由于是动态数组,所以效率不高

模板类array

特性

1、长度固定,同数组一样
2、效率较高
3、使用栈分配内存

定义

包含于头文件array中

  1. array<ElemType,n> ae;
  2. //定义了一个长为n,类型为ElemType的array对象
  3. //n同数组一样,只能为常量

共性

1、相同长度的同类型对象可以使用=直接把所有元素的值赋予过去

  1. vector<int> vi0(n);
  2. vector<int> vi(n);
  3. vi=vi0;
  4. array<int,5> ai0;
  5. array<int,5> ai;
  6. ai=ai0;

2、都可使用中括号的形式引用元素

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注