Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何释放队列占用的内存(STL)?

我正在做一个涉及许多队列的问题,我很好奇,为了释放一个未使用的队列的内存,清空队列(弹出)就足够了,还是我必须做其他的事情?

尝试使用'free‘,但得到错误。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-21 03:52:11

queue只是其他STL容器类型的包装器,默认情况下是std::deque,但也可能是std::list或std::vector。当您的队列超出作用域时,会自动触发底层容器的析构函数。

如果您想手动释放队列消耗的内存,并且您的队列的数据类型是原语(int,float,...)或者有一个适当的析构函数(如果不是全部的话,也是大部分的),你可以在C++11和以后的版本中这样做:

代码语言:javascript
运行
AI代码解释
复制
std::queue<your_type>().swap(your_queue);

或者对于较旧的版本:

代码语言:javascript
运行
AI代码解释
复制
{
    std::queue<your_type> temp;
    std::swap(temp, your_queue);
}

它创建一个空队列,将其内容与您的队列交换,然后销毁它(因为它在交换之后立即超出范围),只留下您手中的空队列。

如果您使用的是没有适当析构函数的自定义类型的队列,我认为唯一的方法是一个接一个地弹出元素,并手动释放弹出的元素的内存。

票数 1
EN

Stack Overflow用户

发布于 2019-06-21 04:03:35

Be careful with pointers.

弹出应该足够了,因为STL类管理自己的资源,例如

代码语言:javascript
运行
AI代码解释
复制
queue <int> g;

g.push(10); 
g.push(20); 
g.push(30); 

while (!g.empty()) 
{  
    g.pop(); 
} 

Reference from GeeksforGeeks

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56688963

复制
相关文章
通过ansible搭建 Redis Cluster 集群环境(Docker)
通过ansible实现自动化搭建 Redis Cluster 集群环境 Docker 搭建Redis 集群
lovelife110
2021/12/08
9060
开源云真机平台-Sonic应用实践
Sonic是一款开源、支持分布式部署、在线自动化测试的私有云真机平台。偶然接触到这个平台是源于虫师的一篇公众号文章《基于Linux 部署 Sonic》,于是结合文章内容和官网尝试搭建了一套,并试用了一番,直到现在也一直在用。后来陆续也加了作者的微信号、粉丝群,对于部署和使用过程中的一些问题和建议,作者和粉丝群中的小伙伴都能及时给予解答,整体体验很不错,遂决定写一篇总结分享。
大刚测试开发实战
2022/11/14
4.7K0
开源云真机平台-Sonic应用实践
红队内网渗透工具(-甲方自查工具)
RequestTemplate是一款两端并用的红队渗透工具以及甲方自查工具,其在内网渗透过程中有着不可替代的作用。
释然IT杂谈
2023/08/18
4290
红队内网渗透工具(-甲方自查工具)
Sonic云真机测试平台在windows的部署及使用
https://www.docker.com/products/docker-desktop
程序媛淼淼
2022/09/01
3K0
Sonic云真机测试平台在windows的部署及使用
Sonic云真机测试平台在windows的部署及使用
https://www.docker.com/products/docker-desktop
测试开发社区
2022/06/08
3.1K0
Sonic云真机测试平台在windows的部署及使用
Docker容器端口配置 原
上面的-p 80,将在docker主机上随机打开一个端口(可利用docker port命令查看,或者docker ps也能看到,这里是32768)映射到容器中的80端口上。
拓荒者
2019/03/11
2.5K0
mysql docker 端口号_如何修改 docker 容器中 mysql 的端口号
修改 docker 中 MySQL 配置文件,在 mysqld 项目下新增 port=3307 配置
全栈程序员站长
2022/07/28
16.5K0
修改Docker中nginx容器默认的端口号配置[通俗易懂]
一般来说,nginx默认使用的是80端口号,但是狗血的是服务器上80端口号被占用了,而且使用80端口号的服务还不能停,这就要换端口号了。
全栈程序员站长
2022/10/03
7.1K0
修改Docker中nginx容器默认的端口号配置[通俗易懂]
docker的端口映射_docker swarm 网络
docker run -itd -p 宿主机ip:宿主机端口:容器端口 –name 容器名 镜像名 /bin/bash
全栈程序员站长
2022/11/10
9950
docker的端口映射_docker swarm 网络
docker搭建环境如何配置端口
在上面一篇文章中,分享过如何搭建和使用dnmp,今天分享如何修改dnmp中PHP容器的端口映射功能。
兔云小新LM
2020/09/24
2.9K1
CoreOS配置Docker 2375端口 原
需要让docker启动时在tcp端口2375上监听api服务 vi /etc/systemd/system/docker-tcp.socket 配置一下内容 [Unit] Description=Docker Socket for the API [Socket] ListenStream=2375 BindIPv6Only=both Service=docker.service [Install] WantedBy=sockets.target 然后再重启docker服务 systemctl e
bdcn
2018/09/12
2.1K0
c1000k TCP 连接上限测试1
指定一个空闲端口,服务端会顺次打开100个端口进行监听,并且在当前terminal挂起
franket
2022/04/23
4690
【DB宝46】NoSQL数据库之CouchBase简介、集群搭建、XDCR同步及备份恢复
CouchBase是一款开源的、分布式的、面向文档的NoSQL数据库,主要用于分布式缓存和数据存储领域。能够通过manage cache提供快速的亚毫米级别的k-v存储操作,并且提供快速的查询和其功能强大的能够指定SQL-like查询的查询引擎。Couchbase是一个较新的、发展迅速的nosql数据库技术。2014年,viber宣布使用couchbase替换mongodb,以适应10亿级的用户量,目前,couchbase已大量运用于生产环境,国内使用的公司主要有新浪,腾讯等。
AiDBA宝典
2021/04/06
2.4K0
【DB宝46】NoSQL数据库之CouchBase简介、集群搭建、XDCR同步及备份恢复
docker端口映射原理_docker修改端口映射
ERROR: ZONE_CONFLICT: ‘docker0’ already bound to a zone
全栈程序员站长
2022/11/02
2.3K0
【Docker】Asp.net core在docker容器中的端口问题
还记得【One by one系列】一步步学习docker(三)——实战部署dotnetcore中遇到的问题么?容器内部启动始终是80端口,并不由命令左右。
DDGarfield
2022/06/23
2.4K0
【DB宝46】NoSQL数据库之CouchBase简介、集群搭建、XDCR同步及备份恢复
CouchBase是一款开源的、分布式的、面向文档的NoSQL数据库,主要用于分布式缓存和数据存储领域。能够通过manage cache提供快速的亚毫米级别的k-v存储操作,并且提供快速的查询和其功能强大的能够指定SQL-like查询的查询引擎。Couchbase是一个较新的、发展迅速的nosql数据库技术。2014年,viber宣布使用couchbase替换mongodb,以适应10亿级的用户量,目前,couchbase已大量运用于生产环境,国内使用的公司主要有新浪,腾讯等。
AiDBA宝典
2021/05/06
2.7K0
【DB宝46】NoSQL数据库之CouchBase简介、集群搭建、XDCR同步及备份恢复
docker容器ip和端口分配_docker iptables failed
当我们用docker新启动一个容器时,有时候想要查看容器的ip,用ip addr命令,却提示找不到命令:
全栈程序员站长
2022/09/19
1.4K0
docker容器ip和端口分配_docker iptables failed
docker端口映射后访问不了_docker暴露多个端口
1、查看防火墙状态( systemctl status firewalld ),防火墙是关闭的
全栈程序员站长
2022/11/02
2.2K0
dockerfile 端口映射_docker 映射端口
HDIS-Framework是一个基于SpringBoot、Kubernetes、阿里云服务,编写的一个用于支撑微服务的极速开发框架。
全栈程序员站长
2022/11/02
7.6K0
dockerfile 端口映射_docker 映射端口
docker设置端口2375
在Windows 7 64位上,采用Vmware workstation 12安装了CenOS7.5 64位。
全栈程序员站长
2022/09/05
2.3K0
docker设置端口2375

相似问题

如何引用8092以外的Couchbase API端口

10

通过Node.js API [Docker]配置Couchbase连接端口

12

Docker使用已配置的端口启动

32

Docker公开用于Flask的端口

37

docker.compose.yml中的端口配置为双行

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档