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

list::emplace_front() และ list::emplace_back() ใน C++ STL


ในบทความนี้เราจะพูดถึงการทำงาน ไวยากรณ์และตัวอย่างของฟังก์ชัน list::emplace_front() และ list::emplace_back() ใน C++ STL

รายการใน STL คืออะไร

รายการเป็นโครงสร้างข้อมูลที่อนุญาตให้แทรกและลบเวลาคงที่ได้ทุกที่ตามลำดับ รายการถูกนำไปใช้เป็นรายการที่เชื่อมโยงเป็นสองเท่า รายการอนุญาตการจัดสรรหน่วยความจำที่ไม่ต่อเนื่องกัน List ทำการดึงการแทรกและการย้ายองค์ประกอบได้ดีกว่าในตำแหน่งใดๆ ในคอนเทนเนอร์มากกว่าอาร์เรย์ เวกเตอร์ และ deque ใน List การเข้าถึงองค์ประกอบโดยตรงนั้นช้าและ list นั้นคล้ายกับ forward_list แต่ออบเจกต์ของรายการส่งต่อเป็นรายการที่เชื่อมโยงเพียงรายการเดียว และสามารถทำซ้ำได้เพียงส่งต่อเท่านั้น

รายการ::emplace_front() คืออะไร

list::emplace_front() เป็นฟังก์ชัน inbuilt ใน C++ STL ซึ่งประกาศไว้ในไฟล์ส่วนหัว emplace_front() ใช้เพื่อแทนที่ (แทรก) องค์ประกอบที่จุดเริ่มต้นของคอนเทนเนอร์รายการ หากคอนเทนเนอร์ว่างเปล่า มันจะผลักองค์ประกอบไปที่ตำแหน่งแรกและองค์ประกอบนั้นจะกลายเป็นองค์ประกอบแรก และหากคอนเทนเนอร์มีองค์ประกอบอยู่ก่อนแล้ว ฟังก์ชันจะแทรกองค์ประกอบที่ส่งผ่านไปยังด้านหน้าและองค์ประกอบที่มีอยู่ซึ่งอยู่ในตำแหน่งแรก จะกลายเป็นองค์ประกอบที่สอง ฟังก์ชันนี้จะเพิ่มขนาดของคอนเทนเนอร์ขึ้น 1

ไวยากรณ์

listname.emplace_front (const value_type& element1);
listname.emplace_front (value_type&& element1);

พารามิเตอร์

ฟังก์ชันนี้ยอมรับเพียง 1 องค์ประกอบที่จะวาง/แทรก

ผลตอบแทนที่ได้รับ

ฟังก์ชันนี้ไม่ส่งคืนสิ่งใด

ตัวอย่าง

Input: list<int> mylist = {1, 2, 3, 4};
mylist.emplace_front(0)
Output:
List elements are = 0 1 2 3 4

ตัวอย่าง

#include <iostream>
#include <list>
using namespace std;
int main(){
   list<int> List;
   List.emplace_front(10);
   List.emplace_front(20);
   List.emplace_front(30);
   List.emplace_front(40);
   List.emplace_front(50);
   List.emplace_front(60);
      cout<<"Elements are : ";
   for(auto i = List.begin(); i!= List.end(); ++i)
      cout << ' ' << *i;
   return 0;
}

ผลลัพธ์

หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -

Elements are : 60 50 40 30 20 10

รายการ::emplace_back() คืออะไร

list::emplace_back() เป็นฟังก์ชัน inbuilt ใน C++ STL ซึ่งประกาศไว้ในไฟล์ส่วนหัว emplace_back() ใช้เพื่อแทนที่ (แทรก) องค์ประกอบที่ด้านหลังหรือท้ายคอนเทนเนอร์รายการ หากคอนเทนเนอร์ว่างเปล่า ก็เพียงแค่แทรกองค์ประกอบและขนาดของคอนเทนเนอร์จะกลายเป็น 1 หากคอนเทนเนอร์มีองค์ประกอบอยู่ก่อนแล้ว ฟังก์ชันจะแทรกองค์ประกอบที่ส่งผ่านไปยังคอนเทนเนอร์ที่ส่วนท้ายของคอนเทนเนอร์รายการ ฟังก์ชันนี้จะเพิ่มขนาดของคอนเทนเนอร์ขึ้น 1

ไวยากรณ์

listname.emplace_back(const value_type& element1);
listname.emplace_back(value_type&& element1);

พารามิเตอร์

ฟังก์ชันนี้ยอมรับเพียง 1 องค์ประกอบที่จะวาง/แทรก

ผลตอบแทนที่ได้รับ

ฟังก์ชันนี้ไม่ส่งคืนสิ่งใด

ตัวอย่าง

Input: list<int> list1 = {1, 2, 3, 4};
   list1.emplace_back(5);
Output: List: 1 2 3 4 5

ตัวอย่าง

#include <iostream>
#include <list>
using namespace std;
int main(){
   list<int> List;
   List.emplace_back(10);
   List.emplace_back(20);
   List.emplace_back(30);
   List.emplace_back(40);
   List.emplace_back(50);
   List.emplace_back(60);
   cout<<"elements are : ";
   for(auto i=List.begin(); i!= List.end(); ++i)
      cout << ' ' << *i;
   return 0;
}

ผลลัพธ์

หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -

Elements are : 10 20 30 40 50 60