Maison  >  Article  >  développement back-end  >  Comment effacer le conteneur C++ STL ?

Comment effacer le conteneur C++ STL ?

WBOY
WBOYoriginal
2024-06-04 12:54:56606parcourir

Pour effacer un conteneur STL en C++, vous pouvez utiliser les trois méthodes suivantes : Utilisez la méthode clear() pour effacer directement tous les éléments du conteneur. Utilisez la méthode Eraser() ou pop_back() pour supprimer tous les éléments du conteneur un par un. Pour les classes de conteneur avec état (telles que ShoppingCart), vous pouvez fournir une méthode clear() personnalisée pour effacer son contenu.

如何清除C++ STL容器?

Comment effacer le conteneur STL C++

En C++, la bibliothèque de modèles standard (STL) fournit de puissantes classes de conteneurs telles que des vecteurs, des listes chaînées et des ensembles. Ces conteneurs sont conçus pour stocker et gérer des données et sont utiles dans divers scénarios de programmation. Cependant, dans certains cas, vous devrez peut-être vider le contenu du conteneur.

1. Méthode conteneur clear()

La méthode la plus simple et la plus directe consiste à utiliser la méthode clear(). Cette méthode supprime tous les éléments du conteneur, ce qui en fait un conteneur vide. clear() 方法。该方法从容器中删除所有元素,使其变为空容器。

#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. 删除所有元素:erase() 或 pop_back()

另一种清除容器内容的方法是删除所有元素。对于向量和链表,可以使用 erase() 方法。它接受一个范围作为参数,并删除指定范围内的所有元素。

对于栈和队列,可以使用 pop_back()

#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;
}

2. Supprimez tous les éléments : Eraser() ou pop_back()

Une autre façon d'effacer le contenu d'un conteneur consiste à supprimer tous les éléments. Pour les vecteurs et les listes chaînées, la méthode erase() peut être utilisée. Il accepte une plage comme argument et supprime tous les éléments de la plage spécifiée.

Pour les piles et les files d'attente, vous pouvez utiliser la méthode pop_back() (si le conteneur n'est pas vide) pour supprimer le dernier élément jusqu'à ce que le conteneur soit vide. 🎜
#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;
}
🎜🎜Cas pratique : Vider le panier🎜🎜🎜Prenons l'exemple d'un panier où est stockée une liste de produits. Lorsqu'un utilisateur finalise son achat, vous devrez peut-être vider le panier pour le rendre disponible pour les nouveaux utilisateurs. 🎜rrreee

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn