กำหนดให้เป็นหน้าที่แสดงรายการฟังก์ชัน swap( ) ฟังก์ชั่นใน C++ ใน STL
รายการใน STL คืออะไร
รายการคือคอนเทนเนอร์ที่อนุญาตให้แทรกและลบเวลาคงที่ที่ใดก็ได้ตามลำดับ Listare นำไปใช้เป็นรายการที่เชื่อมโยงเป็นสองเท่า รายการอนุญาตการจัดสรรหน่วยความจำที่ไม่ต่อเนื่องกัน List ทำการดึงข้อมูลแทรกและเคลื่อนย้ายองค์ประกอบในตำแหน่งใดๆ ในคอนเทนเนอร์ได้ดีกว่าอาร์เรย์ เวกเตอร์ และ deque ใน List การเข้าถึงองค์ประกอบโดยตรงนั้นช้าและ list นั้นคล้ายกับ toforward_list แต่ออบเจกต์รายการส่งต่อเป็นรายการที่เชื่อมโยงเดี่ยวและสามารถทำซ้ำได้เท่านั้น
สวอป ( ) คืออะไร
ฟังก์ชันนี้ใช้เพื่อสลับองค์ประกอบของรายการหนึ่งกับอีกรายการหนึ่ง และทั้งคู่มีประเภทและขนาดข้อมูลเหมือนกัน
ไวยากรณ์:listname1.swap(listname2)
ตัวอย่าง
Input List1: 50 60 80 90 List2: 90 80 70 60 Output After swapping operation List1: 90 80 70 60 List2: 50 60 80 90 Input List1: 45 46 47 48 49 List2: 50 51 52 53 54 Output After swapping Operation List1: 50 51 52 53 54 List2: 45 46 47 48 49
แนวทางสามารถติดตามได้
-
ขั้นแรก เราเริ่มต้นทั้งสองรายการ
-
จากนั้นเราก็พิมพ์รายการทั้งสองรายการ
-
จากนั้นเราจะกำหนดฟังก์ชัน swap( )
-
ในที่สุดเราก็พิมพ์สองรายการหลังจากดำเนินการสลับกัน
โดยใช้วิธีการข้างต้น เราสามารถสลับสองรายการได้
ตัวอย่าง
// C++ code to demonstrate the working of list swap( ) function in STL #include<iostream.h> #include<list.h> Using namespace std; int main ( ){ // initializing two lists List<int> list1 = { 10, 20, 30, 40, 50 }; cout<< “ List1: “; for( auto x = list1.begin( ); x != list1.end( ); ++x) cout<< *x << “ “; List<int> list2 = { 40, 50, 60, 70, 80 }; cout<< “ List2: “; for( auto x = list2.begin( ); x != list2.end( ); ++x) cout<< *x << “ “; // defining swap( ) function list1.swap(list2); cout<< “ After swapping List1 is :”; for(auto x = list1.begin( ); x != list1.end( ); ++x) cout<< *x<< “ “; cout<< “ After swapping List2 is :”; for(auto x = list1.begin( ); x!= list2.end( ); ++x) cout<< *x<< “ “; return 0; }
ผลลัพธ์
หากเรารันโค้ดด้านบน มันจะสร้างผลลัพธ์ต่อไปนี้
Input - List1: 10 20 30 40 50 List2: 40 50 60 70 80 Output - After swapping List1 is: 40 50 60 70 80 After swapping List2 is: 10 20 30 40 50
ตัวอย่าง
// C++ code to demonstrate the working of list swap( ) function in STL #include<iostream.h> #include<list.h> Using namespace std; int main ( ){ // initializing two lists list<int> list1 = { 11, 12, 13, 14, 15 }; cout<< “ List1: “; for( auto x = list1.begin( ); x != list1.end( ); ++x) cout<< *x << “ “; List<int> list2 = { 16, 17, 18, 19, 20 }; cout<< “ List2: “; for( auto x = list2.begin( ); x != list2.end( ); ++x) cout<< *x << “ “; // defining swap( ) function list1.swap(list2); cout<< “ After swapping List1 is :”; for(auto x = list1.begin( ); x != list1.end( ); ++x) cout<< *x<< “ “; cout<< “ After swapping List2 is :”; for(auto x = list1.begin( ); x!= list2.end( ); ++x) cout<< *x<< “ “; return 0; }
ผลลัพธ์
หากเรารันโค้ดด้านบน มันจะสร้างผลลัพธ์ต่อไปนี้
Input - List1: 11 12 13 14 15 List2: 16 17 18 19 20 Output - After swapping List1 is: 16 17 18 19 20 After swapping List2 is: 11 12 13 14 15