首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C++ vector :: clear

vector::clear 是 C++ 标准库中 std::vector 类的一个成员函数,用于移除向量(vector)中的所有元素。当调用 clear() 函数后,向量中的元素数量变为 0,但向量分配的内存空间不会被释放。换句话说,clear() 只是清除了向量中的元素,而没有改变向量的容量(capacity)。

下面是一个使用 vector::clear 的简单示例:

代码语言:javascript
复制
#include <iostream>
#include <vector>

int main() {
    std::vector<int> numbers = {1, 2, 3, 4, 5};

    std::cout << "Before clear: ";
    for (int num : numbers) {
        std::cout << num << " ";
    }
    std::cout << "
";

    // 清除向量中的所有元素
    numbers.clear();

    std::cout << "After clear: ";
    for (int num : numbers) {
        std::cout << num << " ";
    }
    std::cout << "
";

    // 检查向量的大小和容量
    std::cout << "Size: " << numbers.size() << "
";
    std::cout << "Capacity: " << numbers.capacity() << "
";

    return 0;
}

输出结果:

代码语言:javascript
复制
Before clear: 1 2 3 4 5
After clear: 
Size: 0
Capacity: 5

如你所见,在调用 clear() 函数后,向量中的元素被清除了,但向量的容量保持不变。如果你想释放向量占用的内存空间,可以使用 vector::shrink_to_fit() 函数,这将使向量的容量变为当前元素数量的大小。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

vector clear() 方法 内存释放问题

qq-pf-to=pcqq.c2c# vector,clear()并不真正释放内存(这是为优化效率所做的事),clear实际所做的是为vector中所保存的所有对象调用析构函数(如果有的话),然后初始化...所以,某些编译器clear后还能访问到对象数据(因为它根本没清除),在一些比较新的C++编译器上(例如VS2008),当进行数组引用时(例如a[2]这种用法),STL库中会有一些check函数根据当前容器的...: C++ STL中的顺序容器,封装数组 1. vector容器的内存自增长  与其他容器不同,其内存空间只会增长,不会减小。...先来看看"C++ Primer"中怎么说:为了支持快速的随机访问,vector容器的元素以连续方式存放,每一个元素都紧挨着前一个元素存储。...所有内存空间是在vector析构时候才能被系统回收。empty()用来检测容器是否为空的,clear()可以清空所有元素。

12.8K30

【C++】STL 容器 - vector 动态数组容器 ⑧ ( vector 容器添加 删除元素 | clear 函数 | insert 函数 | erase 函数 )

参考 【C++】STL 容器 - vector 动态数组容器 ④ ( vector 容器容量大小操作 | vector 容器容量判定 | vector 容器重新指定容器大小 | 容器尾部插入/删除元素...该函数用于删除 vector 容器中的最后一个元素 void pop_back(); 2、删除 vector 容器所有元素 - clear 函数 clear 函数 是 std::vector 容器的一个成员函数..., 用于移除容器中的所有元素 , 并释放元素占用的内存 ; std::vector#clear() 函数原型如下 : void clear() noexcept; 该函数没有 参数 和 返回值 , 当调用...clear 函数时 , 会删除 std::vector 容器中的所有元素 , 并使容器的 size 成员变量变为 0 ; 特别注意 : clear 函数 不会改变容器的 capacity 容量 ;...二、 vector 插入元素 1、vector 容器尾部 插入 元素 - push_back 函数 参考 【C++】STL 容器 - vector 动态数组容器 ④ ( vector 容器容量大小操作

4.5K11
  • C++ Vector

    c++ vector 简介 vector 是顺序容器的一种,vector 是可变长的动态数组(可存放任意类型),支持随机访问迭代器。...() // 返回vector所能容纳的元素数量(在不重新分配内存的情况下) clear() // 清空所有元素 empty() // 判断vector是否为空(空返回true) end() //...// 在vector最后添加一个元素 rbegin() // 返回vector尾部的逆迭代器 rend() // 返回vector起始的逆迭代器 reserve() // 设置vector最小的元素容纳数量...这样,他们两个用一个内存分配器. ``` ### c++中的allocator类 #### 概述 - 它用于将内存的分配和对象的构造分离开来. 它分配的内存是原始的、未构造的....- 在 Dev C++ 中,上面写法中 int 后面的两个`>`之间需要有空格,否则有的编译器会把它们当作`>>`运算符,编译会出错 vector 的元素不仅仅可以是int,double,string

    1.9K97

    【C++】vector

    `vector` 是一种容器,广泛存在于多种编程语言中,如 C++、Rust、Java 等。它是一种动态数组,可以存储任意类型的元素,并且可以根据需要自动调整大小。...下面我将详细介绍 `vector` 的概念和使用方法,主要以 C++ 中的 `std::vector` 为例。 ### 1....概念 - **动态数组**:与静态数组不同,`vector` 可以在运行时改变其大小。当添加或移除元素时,`vector` 会根据需要自动调整内部存储。...- **清空**:   - `clear()`:移除所有元素,但不会释放分配的内存,`capacity()` 不变。...注意事项 - **线程安全**:C++ 标准库中的 `std::vector` 不是线程安全的,如果多个线程同时访问同一个 `vector`,需要自行实现同步机制。

    8810

    【C++】vector

    一、vector的介绍及使用 1.1 vector的介绍 vector的底层与string相似都是顺序表形式管理数组,本质上来说string就可以归入到vector里面,但是在实际使用中,字符有很多自身独有的接口设计需要...在前面string的介绍使用后,本文不会再详细介绍一些常见接口的使用(C++分装的特性,STL各个接口设计都差不多,阅读文档即可学会使用) vector的文档介绍 使用STL的三个境界:能用,明理,...能扩展 ,那么下面学习vector,我们也是按照这个方法去学 习 1.2 vector的使用 vector学习时一定要学会查看文档:vector的文档介绍,vector在实际中非常的重要,在实际中...= T()) { reserve(n); for (int i = 0; i < n; i++) { push_back(val); } } void clear...= &v) { clear(); reserve(v.size()); for (auto& e : v) { push_back(e); }

    8210

    【C++】STL——vector

    前言 本篇博客继续介绍STL库里一个结构——vector,它是个顺序储存的容器,不仅可以包含字符串,还可以有其他类型,让我们一起来详细看一下它 个人主页:小张同学zkf ⏩ 文章专栏:C++...若有问题 评论区见 欢迎大家点赞收藏⭐文章 1.vector的介绍 vector介绍:vector vector的定义 2.vector的使用 2.1vector iterator 的使用 2.2vector...2.3vector增删查改 2.4vector迭代器失效问题 迭代器的主要作用就是让算法能够不用关心底层数据结构,其底层实际就是一个指针,或者是对 指针进行了封装 ,比如: vector 的迭代器就是原生态指针...对于 vector 可能会导致其迭代器失效的操作有: 1....clear() { _finish = _start; } iterator insert(iterator pos,const T& s) { assert(_start

    7410

    【C++】vector(上)

    一、vector的介绍和使用 1、vector的介绍 这里是cplusplus官方介绍 vector是表示可变大小数组的序列容器 vector类似于数组,采用连续存储空间来存储元素,可以用下标对vector...2、vector的使用 (1)vector的定义 构造函数说明 接口说明 vector() 无参构造 vector(const vector& x) 拷贝构造 vector(size_type n,const...void test1() { vector v1; vector v2(10, 0); vector v3(v2); vector v4(v2.begin...3、vector的优越性 杨辉三角问题 对于这个杨辉三角问题,我们需要一个二维数组,用C语言来写的话稍微的复杂一些,需要malloc一个指针数组,然后指针数组的指针指向一个一维数组 对于C++...vectorvector> generate(int numRows)//numRows是杨辉三角行数 { vectorvector> vv;

    20910

    c++: 容器vector

    介绍 C++ 中的 vector 是一种序列容器,它允许你在运行时动态地插入和删除元素。 vector 是基于数组的数据结构,但它可以自动管理内存,这意味着你不需要手动分配和释放内存。...与 C++ 数组相比,vector 具有更多的灵活性和功能,使其成为 C++ 中常用的数据结构之一。 vector 是 C++ 标准模板库(STL)的一部分,提供了灵活的接口和高效的操作。...C++ 中的 vector 是一种序列容器,它允许你在运行时动态地插入和删除元素 vector本质和 string一样也是模板 写法是vector 名称 (T是类型) 他与string的接口差不多...与string的不同 此外vector和string类不同就是vector没有append函数就是不能加一个字符串,即使是vector也只能一个一个加。...vector的成员变量都是 用迭代器定义的,我们 又可以把迭代器看作是T 就是类似于指针的东西,所以vector 就是 用指针定义的成员变量。

    1500

    【c++】vector以及vector的模拟实现

    vector的介绍及使用 1.vector的介绍 https://cplusplus.com/reference/vector/vector/ vector是表示可变大小数组的序列容器 就像数组一样,...就时间而言,这是一个相对代价高的任务,因为每当一个新的元素加入到容器的时候,vector并不会每次都重新分配大小 vector分配空间策略:vector会分配一些额外的空间以适应可能的增长,因为存储空间比实际需要的存储空间更大.../reference/vector/vector/ vector在实际中非常的重要,在实际中我们熟悉常见的接口就可以,下面列出了哪些接口是要重点掌握的 2.1 vector的定义 2.2 vector...影响size 2.4 vector 增删查改 2.5 vector 迭代器失效问题(重点) 迭代器的主要作用就是让算法能够不用关心底层数据结构,其底层实际就是一个指针,或者是对指针进行了封装,比如:vector...(size_t n) { // 使用vector定义二维数组vv,vv中的每个元素都是vectorvectorvector> vv(n); // 将二维数组每一行中的vecotr

    8010

    【C++】vector类

    vector的介绍及使用 vector的介绍 1. vector 是表示可变大小数组的序列容器。 2. 就像数组一样, vector 也采用的连续存储空间来存储元素。...4. vector 分配空间策略: vector 会分配一些额外的空间以适应可能的增长,因为存储空间比实际需要的存储空间更大。不同的库采用不同的策略权衡空间的使用和重新分配。...vector的使用 vector 学习时一定要学会查看文档: vector 的文档介绍 , vector 在实际中非常的重要,在实际中我们熟悉常见的接口就可以,下面列出了哪些接口是要重点掌握的 。...vector的定义 vector()(重点):无参构造 vector(size_type n, const value_type& val = value_type()) 构造并初始化n个val。...vector (const vector& x); (重点):拷贝构造 vector (InputIterator first, InputIterator last);:使用迭代器进行初始化构造 vector

    5000

    【C++】vector介绍

    前言 在之前已经介绍了string类 【C++】string类初步介绍和【C++】string进一步介绍,这次来看看C++中的顺序表vector。...2. vector的介绍 vector是表示可变大小数组的序列容器。 就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。...vector分配空间策略:vector会分配一些额外的空间以适应可能的增长,因为存储空间比实际需要的存储空间更大。不同的库采用不同的策略权衡空间的使用和重新分配。...使用STL的三个境界:能用,明理,能扩展 ,那么下面学习vector,也是按照这个方法去学习。 vector学习时一定要学会查看文档。 3....cout << endl; 4.2 reserve 来看看vector的扩容机制: void test_vector2() { size_t sz; vector v; sz =

    10110
    领券