ในบทความนี้ เราจะพูดถึงการทำงาน ไวยากรณ์ และตัวอย่างของฟังก์ชัน forward_list::clear() และ forward_list::erase_after() ใน C++
Forward_list ใน STL คืออะไร?
Forward list เป็น sequence container ที่รองรับการแทรกและลบ (insert/erase) ในเวลาคงที่ (constant time) ทุกตำแหน่งภายในลำดับ Forward list ถูกนำไปสู่การใช้งานเป็น singly linked list การจัดลำดับถูกเก็บรักษาโดยการเชื่อมโยงแต่ละองค์ประกอบไปยังองค์ประกอบถัดไป
forward_list::clear() คืออะไร?
forward_list::clear() เป็นฟังก์ชันในตัว (inbuilt) ใน C++ STL ประกาศใน <forward_list> ใช้เมื่อต้องการลบองค์ประกอบทั้งหมดของ forward list ทีเดียว ฟังก์ชันนี้ทำลายทุกองค์ประกอบและทำให้ขนาดของ forward list เป็นศูนย์
ไวยากรณ์
flist_container1.clear();
พารามิเตอร์
ฟังก์ชันนี้ไม่รับพารามิเตอร์
ค่าที่คืน
ฟังก์ชันนี้ไม่คืนค่าอะไร
ตัวอย่าง
Input: forward_list<int> forward = {1, 2, 3, 4}; forward.clear(); forward.size();
Output: 0
ตัวอย่างโค้ด
#include <forward_list>
#include <iostream>
using namespace std;
int main() {
forward_list<int> myList = { 10, 20, 30, 40 };
myList.clear();
for (auto i = myList.begin(); i != myList.end(); ++i)
cout << ' ' << *i;
cout << "List is cleared";
return 0;
}
เอาต์พุต
List is cleared
forward_list::erase_after() คืออะไร?
forward_list::erase_after() เป็นฟังก์ชันในตัวใน C++ STL ประกาศใน <forward_list> ใช้เมื่อต้องการลบองค์ประกอบใน forward list หลังจากตำแหน่งที่ระบุ ขนาดของ forward list จะลดลงตามจำนวนองค์ประกอบที่ถูกลบ
ไวยากรณ์
flist_container1.erase_after(unsigned int position);
พารามิเตอร์
ฟังก์ชันนี้รับพารามิเตอร์หนึ่งคือตำแหน่งที่ต้องการเริ่มลบองค์ประกอบ
ค่าที่คืน
ฟังก์ชันนี้ไม่คืนค่าอะไร
ตัวอย่าง
Input: forward_list<int> forward = {1, 2, 3, 4}; forward.erase_after(2);
Output: Forward list after erase_after() = 1 2 3
ตัวอย่างโค้ด
#include <forward_list>
#include <iostream>
using namespace std;
int main() {
forward_list<int> myList = { 10, 20, 30, 40, 50 };
forward_list<int>::iterator i;
i = myList.begin();
myList.erase_after(i);
cout << "Elements are : ";
for (auto i = myList.begin(); i != myList.end(); ++i)
cout << ' ' << *i;
return 0;
}
เอาต์พุต
Elements are : 10 30 40 50