21xrx.com
2025-04-16 18:13:16 Wednesday
文章检索 我的文章 写文章
::vector详解
2023-07-05 01:26:45 深夜i     14     0
vector 容器 数组 动态分配 迭代器

vector是C++ STL库中的一种容器,与数组相似,但具有更多的灵活性和功能。vector是一个动态的数组,大小可以在运行时调整,除了基本的数组操作,还提供了很多方便的方法和算法。本文将详细介绍vector的特性和用法。

1. 定义和初始化

定义一个vector可以使用如下代码:

  vector v; //定义一个空的vector,存储int类型

  vector str_vec(10); //定义一个包含10个空字符串的vector

  vector d_vec 1.23; //定义一个包含3个值的vector

2. 插入和删除元素

插入元素可以使用push_back()方法,在vector的末尾插入一个元素:

  vector v; //定义一个空的vector,存储int类型

  v.push_back(1); //插入元素1

  v.push_back(2); //插入元素2

  v.push_back(3); //插入元素3

删除元素可以使用erase()方法,可以删除指定的元素或一段元素:

  vector v 8;

  v.erase(v.begin() + 3); //删除第4个元素,即元素4

  v.erase(v.begin() + 2, v.begin() + 5); //删除第3个到第6个元素,即元素3,4,5

3. 访问vector中的元素

可以使用下标操作符[]访问vector中的元素,也可以使用at()方法,但at()方法会检查是否越界:

  vector v 5 ;

  int a = v[2]; //访问第3个元素,即元素3

  int b = v.at(4); //访问第5个元素,即元素5

4. 获取vector的大小和容量

vector的大小表示vector中实际存在的元素数量,可以使用size()方法获取。vector的容量表示vector在内存中可以存储的元素数量,可以使用capacity()方法获取:

  vector v 3;

  int size = v.size(); //获取vector中元素的数量,即5

  int capacity = v.capacity(); //获取vector的容量,通常会大于等于5

当vector的大小超过容量时,vector会自动扩容,注意在大量插入元素时,扩容可能会影响性能。

5. 遍历vector

可以使用迭代器或for循环遍历vector:

  vector v 2;

  for (vector ::iterator it = v.begin(); it != v.end(); it++) {

    cout << *it << " "; //输出所有元素

  }

  for (int i : v)

    cout << i << " "; //输出所有元素

6. 其他常用方法

除了以上介绍的操作,vector还提供了其他很多方便的方法和算法,例如:

  vector v 3;

  bool empty = v.empty(); //判断vector是否为空,即是否含有元素

  int front = v.front(); //获取vector的第一个元素,即元素1

  int back = v.back(); //获取vector的最后一个元素,即元素5

  vector v2(v.begin() + 2, v.end()); //根据迭代器复制vector的一部分

可以通过查看官方文档或其他参考资料,深入了解vector的全部功能。

综上所述,vector是一个非常实用和方便的容器,可以满足各种不同的需求。掌握vector的用法,对于C++编程者来说是非常重要的一项基础技能。

  
  

评论区