用STL向量法

,,,,嵌入式开发内存管理是非常重要的一环,如何高效的使用向量,既能够快速扩展存储空间,并且最大限度的使用存储空间,避免C数组的越界问题


方案

矢量提供多种构造器

1 vectorvec;

vec.reserve (10);

默认构造器没有分配任何的内存空间,直到调用储备(10),分配10个单位的存储空间,如果后续存储空间不够,会重新分配一块足够大的内存,避免了插入失败


2 vectorvec (10);

当前分配10个单位的存储空间,此时所有的元素初始化为0,如果此时调用push_back函数

添加元素,vec的元素个数是11个



测试代码

# include & lt; vector>


int TestVector ()

{

int v1 [10]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

std:: vectorv2;

v2.reserve (10);

(int i=0;我& lt;10;我+ +)

{

v2.push_back (v1[我]);

}


std:: vector:: iterator iter=v2.begin ();

, (iter !=v2.end ())

{

cout & lt; & lt;* iter & lt; & lt;endl;

iter + +;

}

返回0;

}

用STL向量法