使用vector清除元素的主要方法有使用clear()和swap(),但使用clear不能释放内存,对于处理大量数据的时候就需要释放内存来提高速度,这时就需要使用swap。

如果是要清空容器中的数据可以直接使用swap:

#include <vector>
#include <iostream>
using namespace std;
#include <algorithm>int main()
{vector<int>s1;
for(int i=0;i<15;i++)
{s1.push_back(i);cout<<s1.at(i)<<" ";
}
cout<<s1.capacity()<<endl;//输出当前容器内的内存
vector<int>().swap(s1);//清空容器并释放内存
cout<<s1.capacity()<<endl;//输出当前容器内的内存system("pause");
return 0;
}

如果是需要清除容器内的部分数据并释放内存则可以使用erase和swap:

#include <vector>
#include <iostream>
using namespace std;
#include <algorithm>int main()
{vector<int>s1;
for(int i=0;i<15;i++)
{s1.push_back(i);cout<<s1.at(i)<<" ";
}
cout<<s1.capacity()<<endl;//输出当前容器内的内存s1.erase(s1.begin(), s1.begin() + 2);//清除容器内前两个数据
vector<int>(s1).swap(s1);//清空容器并释放内存
cout<<s1.capacity()<<endl;//输出当前容器内的内存system("pause");
return 0;
}

这样就能在清除数据后释放内存,在处理数据量较大时时很有必要考虑释放内存的。

C++:使用vector容器中的erase和swap释放内存相关推荐

  1. vector容器中erase(删除)的使用

    erase函数可以用于删除vector容器中的一个或者一段元素,在删除一个元素的时候,其参数为指向相应元素的迭代器,而在删除一段元素的时候,参数为指向一段元素的开头的迭代器以及指向结尾元素的下一个元素 ...

  2. C++:vector容器中使用pair该如何访问成员

    (显然,vector 的索引从 0 开始,这和普通数组一样.通过使用索引,总是可以访问到 vector 容器中现有的元素.) 如果是简单的访问vector里边的成员的话,是这样的: #include ...

  3. vector容器中数据的排序方法

    前言 在项目中经常会遇到对vector容器中数据排序的情况,有时候vector中数据还常常是pair关联容器.此处给出一个使用demo,使用了C++中的lambda表达式. #include" ...

  4. python共享内存mmap_python - IPC在单独的Docker容器中的Python脚本之间共享内存 - 堆栈内存溢出...

    问题 我已经编写了一个神经网络分类器,该分类器可以获取海量图像(每张图像约1-3 GB),将其打补丁,然后分别通过网络传递这些补丁. 培训的进行过程非常缓慢,因此我对其进行了基准测试,发现用大约50秒 ...

  5. vector容器中关于处理从非0位置开始赋值的操作

    一:前言 问题描述:我们想从下标非0的位置开始赋值, 那么我们需要两步骤:1.确定开启的vector容器的范围(eg: vector v(1000)) 2.在赋值的时候,不可以用push_back() ...

  6. vector容器中重写sort方法

    一:问题描述 1: 我们常用的vector中sort方法是升序的但我们可以通过重新定义sort方法即可实现其的降序处理,以前总是在结构体数组当中用到过重写sort方法,但其实在vector当中也是可以 ...

  7. vector容器中查找某一元素是否存在(牛逼的vector!!!!!!)

    一:前言 当你想要快速查找某一元素是否存在,可以调用该方法 二:步骤 1.写迭代器:vector ::iterator t; 2.调用find方法:t = find(v.begin(),v.end() ...

  8. vector容器中清空元素(但原来的元素还在)

    一:上码演示 1:清空元素但其原来的元素还在 #include<bits/stdc++.h> using namespace std; int main(){vector <int& ...

  9. C++ vector容器中常见的三种遍历方式

    1.迭代器 for (std::vector<int>::iterator it = vecTest.begin(); it != vecTest.end(); ++it){tempNum ...

  10. C++读txt文件,存入vector容器中

    经常需要用到读txt文件里的数据,总结一个模板希望以后可以直接套用. //C++ 读txt文件 #include <iostream> #include <sstream> # ...

最新文章

  1. python的切片和索引是什么_NumPy 切片和索引
  2. R语言ggplot2可视化:可视化分组的小提琴图(violin plot)并在分组小提琴内部嵌入箱图(box plot)
  3. Websphere 7小版本不同导致的JAXP兼容性问题
  4. 【编程】为什么不能直接对链表头head进行操作?
  5. 三十九、SPSS神器界面功能介绍,计算变量和个案计数和加权
  6. 直通BAT必考题系列:深入剖析JVM之G1收集器、及回收流程、与推荐用例
  7. 排序算法:简单选择排序算法实现及分析
  8. 如何有效地报告Bug
  9. 自治时代:Oracle 公有云离我们很近,自治数据库离我们还远
  10. 魅族 linux 手机,魅族flyme开源,能否再现linux辉煌,为什么要开源
  11. PDE1 Introduction to PDE
  12. .NET对存储过程的调用抽象封装
  13. @TableField注解使用(忽略扫描)
  14. 中职学校计算机课听课记录表,中职语文听课记录10篇
  15. creo减速器建模实例,减速箱proE整体及零件图
  16. 2022年一级建造师《公路工程》模拟考试卷带答案
  17. 海门中学2021高考成绩查询入口,海门中学举行2020—2021学年度第一学期优秀学生表彰大会,附名单...
  18. EBS提交取消请求、请求集程序fnd_request
  19. 机器人SLAM与自主导航——(四)Gazebo仿真机器人导航
  20. 魔方四阶玩法[图解]

热门文章

  1. 【牛客刷题-SQL进阶挑战】NO5.窗口函数
  2. 触发器referencing old as old new as new
  3. 虚拟机服务器异常怎么解决,windows server 2016 虚拟机异常关闭
  4. 实现京东首页的轮播广告效果,包含三个以上产品广告
  5. X(解释变量)增加一单位标准差,Y(被解释变量)增加多少标准差?
  6. 大数据管理技术 Hadoop-JavaAPI程序案例1
  7. python有道翻译
  8. 哈希表、哈希桶的实现
  9. DP转HDMI/VGA拓展坞方案|CS5262 DP转HDMI+VGA扩展坞设计|CS5262应用电路
  10. TensorFlow Serving