Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Hàm list::push_front() trong C++ STL


Bài viết thảo luận về cách hoạt động, cú pháp và ví dụ của hàm push_front() 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 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 hiệu quả hơn array, vector, deque về chèn, xóa, di chuyển phần tử. Truy cập trực tiếp phần tử trong list chậm hơn, list tương tự forward_list nhưng forward_list là danh sách liên kết đơn chỉ duyệt được một chiều.

push_front() là gì?

push_front() là hàm built-in trong C++ STL, khai báo trong header <list>. Hàm này chèn phần tử vào đầu list container. Nếu container rỗng, phần tử trở thành phần tử đầu tiên. Nếu đã có phần tử, phần tử mới thành phần tử đầu tiên, phần tử cũ dịch sang phải. Kích thước container tăng 1.

Cú pháp

void push_front(const value_type& element1);
void push_front(value_type&& element1);

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

Giá trị trả về

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

Ví dụ 1

#include <bits/stdc++.h>
using namespace std;

int main() {
    list<int> myList;
    myList.push_back(1);
    myList.push_back(2);
    myList.push_back(3);
    myList.push_back(4);
    cout << "List: ";
    for(auto i = myList.begin(); i != myList.end(); i++)
        cout << *i << " ";
    myList.push_front(0);
    cout << "\nList after calling push_front(): ";
    for(auto i = myList.begin(); i != myList.end(); i++)
        cout << *i << " ";
    return 0;
}

Kết quả

List: 1 2 3 4
List after calling push_front(): 0 1 2 3 4

Ví dụ 2

#include <iostream>
#include <list>

int main() {
    std::list<int> myList(2, 30);
    myList.push_front(20);
    myList.push_front(10);
    std::cout << "elements in my list are: ";
    for(auto i = myList.begin(); i != myList.end(); ++i)
        std::cout << ' ' << *i;
    std::cout << '\n';
    return 0;
}

Kết quả

Elements in my list are: 10 20 30 30