Computer >> Máy Tính >  >> Lập trình >> C ++

list ::emplace_front () và list ::emplace_back () trong C ++ STL

Trong bài viết này, chúng ta sẽ thảo luận về cách làm việc, cú pháp và các ví dụ của hàm list ::emplace_front () và list ::emplace_back () trong C ++ STL.

Danh sách trong STL là gì?

Danh sách là một cấu trúc dữ liệu cho phép chèn và xóa theo thời gian liên tục ở bất kỳ đâu theo trình tự. Danh sách được triển khai dưới dạng danh sách được liên kết kép. Danh sách cho phép phân bổ bộ nhớ không liền kề. Danh sách thực hiện trích xuất chèn và di chuyển phần tử ở bất kỳ vị trí nào trong vùng chứa tốt hơn so với mảng, vectơ và deque. Trong Danh sách, truy cập trực tiếp vào phần tử chậm và danh sách tương tự như forward_list, nhưng các đối tượng danh sách chuyển tiếp là danh sách được liên kết đơn và chúng chỉ có thể được lặp lại về phía trước.

Danh sách ::emplace_front () là gì?

list ::emplace_front () là một hàm có sẵn trong C ++ STL được khai báo trong tệp tiêu đề . emplace_front () được sử dụng để thay thế (chèn) phần tử vào đầu vùng chứa danh sách. Nếu vùng chứa trống, nó sẽ đẩy phần tử ở vị trí đầu tiên và phần tử trở thành phần tử đầu tiên và nếu vùng chứa đã có các phần tử trước thì hàm sẽ chèn phần tử được chuyển tới nó lên phía trước và phần tử hiện có ở vị trí đầu tiên sẽ trở thành phần tử thứ hai. Chức năng này tăng kích thước của vùng chứa lên 1.

Cú pháp

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

Tham số

Hàm này chỉ chấp nhận 1 phần tử sẽ được thay thế / chèn vào.

Giá trị trả lại

Hàm này không trả về gì.

Ví dụ

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

Ví dụ

#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;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

Elements are : 60 50 40 30 20 10

Danh sách ::emplace_back () là gì?

list ::emplace_back () là một hàm có sẵn trong C ++ STL được khai báo trong tệp tiêu đề . emplace_back () được sử dụng để thay thế (chèn) phần tử ở phía sau hoặc ở cuối vùng chứa danh sách. Nếu vùng chứa trống, nó chỉ cần chèn phần tử và kích thước của vùng chứa sẽ trở thành 1 nếu vùng chứa có các phần tử trước đó, hàm sẽ chèn phần tử được chuyển đến nó vào cuối vùng chứa danh sách. Chức năng này tăng kích thước của vùng chứa lên 1.

Cú pháp

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

Tham số

Hàm này chỉ chấp nhận 1 phần tử sẽ được thay thế / chèn vào.

Giá trị trả lại

Hàm này không trả về gì.

Ví dụ

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

Ví dụ

#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;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

Elements are : 10 20 30 40 50 60