第一范文网 - 专业文章范例文档资料分享平台

C++ vector的用法

来源:用户分享 时间:2025/10/8 23:01:10 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

只有临时变量的修整过的容量,而这个临时变量则持有了曾经在ivec中的没用到的过剩容量。在这里(这个语句结尾),临时vector被销毁,因此释放了以前ivec使用的内存,收缩到合适。

3.用swap方法强行释放STL Vector所占内存 template < class T> void ClearVector( vector& v ) {

vectorvtTemp; vtTemp.swap( v ); } 如

vector v ; nums.push_back(1); nums.push_back(3); nums.push_back(2); nums.push_back(4); vector().swap(v); /* 或者v.swap(vector()); */

/*或者{ std::vector tmp = v; v.swap(tmp); }; //加大括号{ }是让tmp退出{ }时自动析构*/

五、Vector 内存管理成员函数的行为测试

C++ STL的vector使用非常广泛,但是对其内存的管理模型一直有多种猜测,下面用实例代码测试来了解其内存管理方式,测试代码如下: #include #include using namespace std; int main() {

vector iVec;

cout << \容器大小为: \

cout << \容器容量为: \个元素,容器容量为1 iVec.push_back(1);

cout << \容器大小为: \

cout << \容器容量为: \个元素,容器容量为2 iVec.push_back(2);

cout << \容器大小为: \

cout << \容器容量为: \个元素,容器容量为4 iVec.push_back(3);

cout << \容器大小为: \

cout << \容器容量为: \个元素,容器容量为4 iVec.push_back(4); iVec.push_back(5);

cout << \容器大小为: \

cout << \容器容量为: \个元素,容器容量为8 iVec.push_back(6);

cout << \容器大小为: \

cout << \容器容量为: \个元素,容器容量为8 iVec.push_back(7);

cout << \容器大小为: \

cout << \容器容量为: \个元素,容器容量为8 iVec.push_back(8);

cout << \容器大小为: \

cout << \容器容量为: \个元素,容器容量为8 iVec.push_back(9);

cout << \容器大小为: \

cout << \容器容量为: \个元素,容器容量为16 /* vs2005/8 容量增长不是翻倍的,如 9个元素 容量9 10个元素容量13 */

/* 测试effective stl中的特殊的交换 swap() */

cout << \当前vector 的大小为: \cout << \当前vector 的容量为: \vector(iVec).swap(iVec);

cout << \临时的vector对象的大小为: \cout << \临时的vector对象的容量为: \cout << \交换后,当前vector 的大小为: \cout << \交换后,当前vector 的容量为: \return 0; }

六、vector的其他成员函数 c.assign(beg,end)

将[beg; end)区间中的数据赋值给c。 c.assign(n,elem)

将n个elem的拷贝赋值给c。 c.at(idx)

传回索引idx所指的数据,如果idx越界,抛出out_of_range。 c.back()

传回最后一个数据,不检查这个数据是否存在。 c.front()

传回地一个数据。 get_allocator

使用构造函数返回一个拷贝。 c.rbegin()

传回一个逆向队列的第一个数据。 c.rend()

传回一个逆向队列的最后一个数据的下一个位置。 c.~ vector ()

销毁所有数据,释放内存。

搜索更多关于: C++ vector的用法 的文档
C++ vector的用法.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c3sxg25j3e310e609mkl8_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top