Computer >> Hướng Dẫn 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 hoạt động, cú pháp và ví dụ của các hàm list::emplace_front() và list::emplace_back() trong C++ STL.

List trong STL là gì?

List là cấu trúc dữ liệu cho phép chèn và xóa ở bất kỳ vị trí nào trong chuỗi với thời gian không đổi. List được triển khai dưới dạng danh sách liên kết đôi. List cho phép cấp phát bộ nhớ không liên tục. List hoạt động tốt hơn array, vector và deque khi chèn, trích xuất và di chuyển phần tử ở bất kỳ vị trí nào. Truy cập trực tiếp vào phần tử chậm hơn và list tương tự forward_list, nhưng forward_list là danh sách liên kết đơn chỉ lặp tiến.

list::emplace_front() là gì?

list::emplace_front() là hàm built-in trong C++ STL được khai báo trong header <list>. Hàm dùng để emplace (chèn) phần tử vào đầu list container. Nếu container rỗng, phần tử được chèn tại vị trí đầu tiên. Nếu container đã có phần tử, hàm chèn phần tử mới lên đầu và phần tử đầu cũ trở thành phần tử thứ hai. Hàm tăng kích thước container lên 1.

Cú pháp

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

Tham số

Hàm chỉ nhận 1 phần tử cần emplace/chèn.

Giá trị trả về

Hàm không trả về giá trị.

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ụ hoàn chỉnh

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

Kết quả

Elements are : 60 50 40 30 20 10

list::emplace_back() là gì?

list::emplace_back() là hàm built-in trong C++ STL được khai báo trong header <list>. Hàm dùng để emplace (chèn) phần tử vào cuối (back) của list container. Nếu container rỗng, chèn phần tử và kích thước thành 1. Nếu đã có phần tử, chèn phần tử mới vào cuối. Hàm tăng kích thước container lên 1.

Cú pháp

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

Tham số

Hàm chỉ nhận 1 phần tử cần emplace/chèn.

Giá trị trả về

Hàm không trả về giá trị.

Ví dụ

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

Ví dụ hoàn chỉnh

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

Kết quả

Elements are : 10 20 30 40 50 60