Home  >  Article  >  Backend Development  >  How to clear C++ STL container?

How to clear C++ STL container?

WBOY
WBOYOriginal
2024-06-04 12:54:56662browse

To clear an STL container in C++, you can use the following three methods: Use the clear() method to directly clear all elements in the container. Use the erase() or pop_back() method to delete all elements in the container one by one. For stateful container classes (such as ShoppingCart), you can provide a custom clear() method to clear its contents.

如何清除C++ STL容器?

How to clear C++ STL container

In C++, the Standard Template Library (STL) provides powerful container classes, such as Vectors, linked lists and sets. These containers are designed to store and manage data and are useful in various programming scenarios. However, in some cases, you may need to clear the contents of the container.

1. clear() container method

The simplest and most direct method is to use the clear() method. This method removes all elements from the container, making it an empty container.

#include <vector>

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

  // 使用 clear() 方法清除容器
  numbers.clear();

  // 检查容器是否为空
  if (numbers.empty()) {
    std::cout << "容器已清除" << std::endl;
  }

  return 0;
}

2. Delete all elements: erase() or pop_back()

Another way to clear the contents of a container is to delete all elements. For vectors and linked lists, you can use the erase() method. It accepts a range as argument and removes all elements within the specified range.

For stacks and queues, you can use the pop_back() method (if the container is not empty) to remove the last element until the container is empty.

#include <list>

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

  // 删除所有元素:erase() 方法
  numbers.erase(numbers.begin(), numbers.end());

  // 检查容器是否为空
  if (numbers.empty()) {
    std::cout << "容器已清除" << std::endl;
  }

  return 0;
}

Practical Example: Clearing the Shopping Cart

Let us consider the example of a shopping cart where a list of products is stored. When a user completes their purchase, you may need to clear the cart to make it available for new users.

#include <vector>

class Product {
public:
  std::string name;
  int quantity;
};

class ShoppingCart {
public:
  std::vector<Product> products;

  // 清除购物车
  void clear() {
    products.clear();
  }
};

int main() {
  ShoppingCart cart;

  // 添加一些产品到购物车
  cart.products.push_back({ "苹果", 5 });
  cart.products.push_back({ "香蕉", 3 });

  // 完成购物,清除购物车
  cart.clear();

  // 检查购物车是否为空
  if (cart.products.empty()) {
    std::cout << "购物车已清除" << std::endl;
  }

  return 0;
}

The above is the detailed content of How to clear C++ STL container?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn