ในบทความนี้เราจะอภิบายการทำงาน ไวยากรณ์ และตัวอย่างของฟังก์ชัน remove() ใน C++
List ใน STL คืออะไร
List เป็นโครงสร้างข้อมูลที่อนุญาตให้แทรกและลบได้ในเวลาคงที่ที่ตำแหน่งใดก็ตามในลำดับ List ถูกนำไปใช้เป็น doubly linked lists List อนุญาตการจัดสรรหน่วยความจำแบบไม่ต่อเนื่อง List ทำงานการแทรก ดึง และย้ายองค์ประกอบได้ดีกว่า array, vector และ deque ใน List การเข้าถึงองค์ประกอบโดยตรงช้า และ list คล้ายกับ forward_list แต่วัตถุ forward_list เป็น singly linked lists และสามารถวนรอบได้เฉพาะไปข้างหน้า
remove() คืออะไร
remove() เป็นฟังก์ชันในตัวใน C++ STL ซึ่งประกาศในไฟล์หัวเรื่อง remove() ใช้ลบค่า/องค์ประกอบเฉพาะจากคอนเทนเนอร์ list ฟังก์ชันรับค่าที่ส่งเป็นพารามิเตอร์และลบองค์ประกอบทั้งหมดที่มีค่านั้นออกจากคอนเทนเนอร์ list ฟังก์ชันเรียก destructor หากขนาดขององค์ประกอบที่ลบมากกว่าขนาดของคอนเทนเนอร์ list
ไวยากรณ์
list_name.remove(const value_type& value);
ฟังก์ชันนี้รับค่าที่จะค้นหาจากคอนเทนเนอร์ list และลบออก
ค่าที่คืน
ฟังก์ชันนี้ไม่คืนค่าอะไร แค่ลบองค์ประกอบออกจากคอนเทนเนอร์
ตัวอย่าง
/* ในโค้ดด้านล่างเราแทรกองค์ประกอบลงใน list แล้วลองลบองค์ประกอบจาก list โดยใช้ค่าของมัน */
#include <bits/stdc++.h>
using namespace std;
int main() {
// create a list
list<int> myList;
// insert elements to the List
myList.push_back(1);
myList.push_back(1);
myList.push_back(3);
myList.push_back(2);
myList.push_back(5);
// my list before removing elements
cout << "List before removing elements: ";
for (auto i = myList.begin(); i != myList.end(); i++) {
cout << *i << " ";
}
// deleting 1, 2 and 3 from the list
myList.remove(1);
myList.remove(2);
myList.remove(3);
// List after removing elements
cout << "\nList after removing elements: ";
for (auto i = myList.begin(); i != myList.end(); i++) {
cout << *i << " ";
}
return 0;
}เอาต์พุต
List before removing elements: 1 1 3 2 5 List after removing elements: 5