Untuk mengosongkan bekas STL dalam C++, anda boleh menggunakan tiga kaedah berikut: Gunakan kaedah clear() untuk mengosongkan terus semua elemen dalam bekas. Gunakan kaedah erase() atau pop_back() untuk memadam semua elemen dalam bekas satu demi satu. Untuk kelas kontena stateful (seperti ShoppingCart), anda boleh menyediakan kaedah clear() tersuai untuk mengosongkan kandungannya.
Cara mengosongkan bekas C++ STL
Dalam C++, Perpustakaan Templat Standard (STL) menyediakan kelas kontena berkuasa seperti vektor, senarai terpaut dan set. Bekas ini direka bentuk untuk menyimpan dan mengurus data dan berguna dalam pelbagai senario pengaturcaraan. Walau bagaimanapun, dalam beberapa kes, anda mungkin perlu mengosongkan kandungan bekas.
1. kaedah bekas clear()
Kaedah paling mudah dan langsung ialah menggunakan kaedah clear()
. Kaedah ini mengalih keluar semua elemen daripada bekas, menjadikannya bekas kosong. 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 Padamkan semua elemen: erase() atau pop_back()
Cara lain untuk mengosongkan kandungan bekas ialah memadam semua elemen. Untuk vektor dan senarai terpaut, kaedaherase()
boleh digunakan. Ia menerima julat sebagai hujah dan mengalih keluar semua elemen dalam julat yang ditentukan. Untuk tindanan dan baris gilir, anda boleh menggunakan kaedah pop_back()
(jika bekas tidak kosong) untuk mengalih keluar elemen terakhir sehingga bekas itu kosong. 🎜#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; }
Atas ialah kandungan terperinci Bagaimana untuk mengosongkan bekas C++ STL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!