Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

forward_list::clear() และ forward_list::erase_after() ใน C++ STL


ในบทความนี้ เราจะพูดถึงการทำงาน ไวยากรณ์ และตัวอย่างของฟังก์ชัน 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