C++的vector容器清空

本文详细介绍了C++标准模板库(STL)中vector容器的清空方法。不仅解释了clear()函数的作用机制,还提供了resize()函数的两种重载形式及使用场景,帮助读者理解如何有效清空vector容器,包括一维和二维vector。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  c++内部STL库中自带了一个容器vetcor, 自带了清空方法——clear()。但是clear使用之后,并不能清空数据,其数据再未被覆盖之前是不会改变的,个人猜测clear仅仅把指针挪动到了起始位置,所以需要清空置值的话,就需要配合上resize方法,resize重分配之后是可以直接 [ ] 访问的。

   reszie有被重载过一次,有两种实现方式:

    1、void resize(std::size_t __new_size, int __x);

    2、void resize(std::size_t __new_size);

  多出来的x是想初始化后生成的数,(其实个人感觉gcc里的函数声明的原型应该是这样的 void resize(std::size_t __new_size, int __x = 0); 默x为0)

当然,也可以用循环的方式进行清空。(目前只能想到这些)

   如果想要清空二维的vetcor,那就得一行行的clear和resize。

学习不易,诸君共勉!

### 清空 Docker 所有数据 要清空 Docker 的所有数据,包括容器、镜像、网络和卷,可以按照如下方法操作。这是一项非常彻底的任务,将会移除 Docker 环境中的全部内容,在执行前务必确认已经备份重要资料并理解其影响[^1]。 #### 使用命令行工具清理 Docker 资源 为了完成这一目标,可以通过组合多个 Docker 命令来实现: - **停止所有正在运行的容器** 需先确保没有任何活动容器在运行,可利用 `docker stop` 加上查询到的所有容器 ID 来做到这一点。 ```bash docker stop $(docker ps -q) ``` - **删除所有容器** 接下来就是移除所有的容器实例,无论是处于何种状态。 ```bash docker rm $(docker ps -a -q) ``` - **删除所有未使用的镜像** 这一步骤用于清除不再被任何现有容器引用的镜像。 ```bash docker rmi $(docker images -q) ``` - **强制删除所有本地镜像(含悬空镜像)** 如果希望连同那些曾经创建过但当前没有关联容器的“悬空”镜像也一并处理掉,则应采用此方式。 ```bash docker image prune -af ``` - **删除所有自定义网络** 此外还需要关注由用户建立起来的各种虚拟网络配置。 ```bash docker network rm $(docker network ls | grep "bridge\|host\|none" -v | awk '/ / { print $1 }') ``` - **删除所有卷** 卷是用来持久化存储的数据结构;如果不打算保留任何历史记录或数据库文件的话,也可以将其一同清理。 ```bash docker volume prune -f ``` 上述一系列指令能够有效地帮助用户达到完全重置 Docker 工作环境的目的。值得注意的是,每条命令都带有潜在的风险,特别是当涉及到生产环境中时更需谨慎行事。 关于单独针对日志文件的清理工作,如果仅想清空而非物理删除它们,那么可以根据给定的方法通过查找各个容器的日志位置并将之截断至零长度的方式来达成目的[^2]。 ```bash docker ps -aq | xargs -I {} sh -c 'docker inspect --format="{{.LogPath}}" {} | xargs truncate -s 0' ``` 以上脚本会遍历每一个存在的容器,并对其对应的日志文件实施清空动作而不改变原有文件名或其他属性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值