vector相关基础知识

阅读: 评论:0

vector相关基础知识

vector相关基础知识

vector是表现为可变长数组的序列容器,vector使用连续的存储位置来存储元素。
在vector内部,使用一个动态分配内存的数组来保存其元素。当插入新元素的时候,这个数组可能需要重新分配,以增加大小,这意味着分配一个新的数组,并且将原有的元素从旧的位置移到新的数组中。这个操作在时间方面是个开销极大的操作,因此,vector相比于数组,vector消耗更多的内存,以换取管理存储和动态增长的能力。

一:vector创建和初始化方法
(1).默认初始化,vector为空,size为0,未开辟空间,可通过push_back()添加元素。

vector<int> v;
v.push_back(10);

PS:由于未开辟空间 不可以通过下标形式去赋值。

v[0] = 10;//这种写法错误

(2).用已存在的vector初始化新的vector

vector<int> v(5,2);
vector<int> v_copy(v);

(3) .指定初始化元素个数m,元素值n

vector<int> v(m,n);

(4) .指定初始化元素个数m,元素值默认0

vector<int> v(m);

二:vector的删除
(1):std::vector::erase()
函数原型

iterator erase (iterator position);                //删除指定元素
iterator erase (iterator first, iterator last);  //删除指定范围内的元素

返回值:指向删除元素或范围的下一个元素。

vector<int> vec{1, 4, 3, 2, 5, 2};
for(auto it = vec.begin(); it != d(); it++)
{if(*it < 3){cout << "num is " << *it << endl;it = ase(it);if(it == d())//越界问题break;}
}

比较:
algorithm算法删除:
remove(first, last, value) 函数移除[first, last) 范围的 value,返回新值范围的尾后迭代器。
remove并不是真的删除元素,而是以覆盖的方式将满足删除条件的元素移到容器最后。
remove+ erase配合删除

本文发布于:2024-01-27 18:44:41,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17063522811967.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:基础知识   vector
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23