21xrx.com
2024-11-05 14:58:59 Tuesday
登录
文章检索 我的文章 写文章
C++ 中 vector 的用法:删除指定值
2023-07-07 18:55:40 深夜i     --     --
C++ vector 删除 指定值

在 C++ 中,vector 是一种非常有用的数据结构,用来存储序列化的元素。它提供了许多有用的方法,比如添加、删除、修改元素等等。本文将介绍如何使用 vector 中的 erase() 方法来删除指定值。

vector 的使用非常简单。我们可以通过以下代码来创建一个 vector:


#include <vector>

#include <iostream>

int main() {

  std::vector<int> myVector 5;

  return 0;

}

上述代码可以创建一个包含 1 到 5 的整数序列的 vector。我们可以使用 std::cout 来输出 vector 中的元素。

现在我们来看看如何使用 erase() 方法来删除指定值。erase() 方法的原型如下:


iterator erase (const_iterator position);

iterator erase (const_iterator first, const_iterator last);

第一个 erase() 方法删除指定位置的元素,第二个 erase() 方法删除一个区间内的所有元素。我们可以使用迭代器来指定要删除的元素的位置。使用下标的方式来删除元素是不支持的。

下面的示例演示了如何使用 erase() 方法来删除 vector 中的一个元素:


#include <vector>

#include <iostream>

int main() {

  std::vector<int> myVector 4;

  auto it = std::find(myVector.begin(), myVector.end(), 3);

  if (it != myVector.end()) {

    myVector.erase(it);

  }

  for (auto i : myVector)

    std::cout << i << std::endl;

  

  return 0;

}

上述代码中,我们使用 std::find() 方法来查找值为 3 的元素的位置,然后使用 erase() 方法来删除它。最后,我们使用 for 循环来输出 vector 中的所有元素。

如果我们要删除 vector 中所有等于某个值的元素,我们可以使用以下代码:


#include <vector>

#include <algorithm>

#include <iostream>

int main() {

  std::vector<int> myVector 3;

  std::vector<int>::iterator it = myVector.begin();

  while (it != myVector.end()) {

    if (*it == 3) {

      it = myVector.erase(it);

    } else {

      ++it;

    }

  }

  for (auto i : myVector)

    std::cout << i << std::endl;

  

  return 0;

}

上述代码中,我们使用 while 循环来遍历 vector 中的每个元素,并使用 erase() 方法来删除等于 3 的元素。由于我们可能会反复删除元素,所以我们需要根据返回值来更新迭代器的位置。

总之,vector 是一个非常强大的数据结构,我们可以使用它来存储各种数据类型。使用 erase() 方法,我们可以轻松地删除 vector 中的任何元素。希望本文对你有所帮助。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复