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

Danh sách trong C ++ (4.5)


Danh sách là loại vùng chứa lưu trữ dữ liệu theo cách tuần tự và cấp phát bộ nhớ không liền kề cho các phần tử. Trong C ++, danh sách được coi là danh sách được liên kết kép mà việc chèn và xóa các phần tử có thể được thực hiện từ cả hai đầu và do đó, cũng có thể duyệt qua danh sách từ cả hai đầu. Để sử dụng danh sách liên kết đơn, chúng tôi sử dụng danh sách chuyển tiếp có sẵn trong C ++ STL.

Lợi thế của việc sử dụng Danh sách trên vectơ là

Danh sách nhanh hơn trong việc chèn và xóa các phần tử có sẵn trong vùng chứa danh sách nếu trình lặp được định vị đúng phần tử.

Nhược điểm của việc sử dụng Danh sách là vậy

Trong danh sách, rất khó để tìm nạp phần tử có sẵn trong vùng chứa trực tiếp thông qua vị trí của nó. Giống như, nếu chúng ta muốn tìm nạp phần tử thứ tư thì sẽ rất khó để chuyển trực tiếp đến phần tử thứ tư thay vào đó, trình vòng lặp cần phải đến đó từ vị trí bắt đầu hoặc kết thúc.

Các hàm được liên kết với Danh sách là

  • Push_front (phần tử) - Hàm này dùng để chèn phần tử vào đầu danh sách.

    Cú pháp -listName.push_front (phần tử kiểu dữ liệu)

    Thông số - Cần một tham số làm giá trị được chèn vào.

    Giá trị trả lại - Không có giá trị trả lại.

  • Push_back (phần tử) - Hàm này dùng để chèn phần tử vào cuối danh sách.

    Cú pháp - listName.push_back (phần tử kiểu dữ liệu)

    Thông số - Cần một tham số làm giá trị được chèn vào.

    Giá trị trả lại - Không có giá trị trả lại.

  • Chèn () - Hàm này được sử dụng để chèn phần tử vào vị trí đã cho trong vùng chứa danh sách.

    Cú pháp -:listName.insert (vị trí, tổng số, phần tử)

    Thông số - Có ba tham số -

    • Vị trí, tại đó phần tử cần được chèn vào

    • Total, chỉ định tổng số phần tử sẽ được chèn vào

    • Phần tử chỉ định phần tử sẽ được chèn.

  • Giá trị trả lại - trả về trình vòng lặp trỏ đến phần bắt đầu của các phần tử mới được chèn vào.

  • Pop_front () - Hàm này được sử dụng để xóa phần tử khỏi đầu danh sách.

    Cú pháp - listName.pop_front ()

    Thông số - Không có tham số

    Giá trị trả lại - Không có giá trị trả lại

  • Mặt trước () - Hàm này được sử dụng để tìm nạp phần tử đầu tiên của danh sách.

    Cú pháp - listName.front ()

    Thông số - Không có tham số

    Giá trị trả lại - Hàm này trả về tham chiếu trực tiếp đến phần tử đầu tiên

  • Pop_back () - Hàm này dùng để xóa phần tử ở cuối danh sách.

    Cú pháp - listName.pop_back ()

    Thông số - Không có tham số

    Giá trị trả lại - Không có giá trị trả lại

  • quay lại () - Hàm này được sử dụng để tìm nạp phần tử cuối cùng của danh sách.

    Cú pháp - listName.back ()

    Thông số - Không có tham số

    Giá trị trả lại - Hàm này trả về tham chiếu trực tiếp đến phần tử cuối cùng

  • kích thước () - Hàm này được sử dụng để lấy tổng số phần tử trong danh sách.

    Cú pháp - listName.size ()

    Thông số - Không có tham số

    Giá trị trả lại - Hàm này trả về tổng số phần tử trong danh sách.

  • Thay đổi kích thước () - Hàm này được sử dụng để thay đổi kích thước tổng số phần tử trong danh sách.

    Cú pháp - listName.resize (int resize_number, value (tùy chọn))

    Thông số - cần hai tham số

    • resize_number - con số chính xác mà kích thước của thùng chứa sẽ được tăng lên hoặc giảm xuống

    • giá trị (tùy chọn) - nó là một tham số tùy chọn sẽ thêm giá trị được chỉ định vào cuối các phần tử.

  • Giá trị trả lại -:Không có giá trị trả lại.

  • Max_size () - Hàm này được sử dụng để tìm nạp số lượng phần tử tối đa mà một danh sách có thể có.

    Cú pháp - listName.max_size ()

    Thông số - Không có tham số

    Giá trị trả lại - Hàm này trả về số phần tử tối đa mà một danh sách có thể có.

  • Xóa () - Chức năng này được sử dụng để xóa tất cả các phần tử khỏi danh sách và đặt lại kích thước của nó thành 0.

    Cú pháp - listName.max_size ()

    Thông số - Không có tham số

    Giá trị trả lại - Không có giá trị trả lại.

  • loại bỏ (phần tử) - Hàm này được sử dụng để xóa tất cả các phần tử khớp với phần tử được truyền vào tham số.

    Cú pháp - listName.remove (phần tử)

    Thông số - nó nhận một tham số duy nhất chỉ định phần tử sẽ bị xóa khỏi vùng chứa danh sách.

    Giá trị trả lại - Không có giá trị trả lại.

  • Remove_if (Con trỏ hàm / đối tượng hàm) - Hàm này được sử dụng để xóa tất cả các phần tử khớp với phần tử được truyền vào tham số dựa trên điều kiện được truyền trong một tham số.

    Cú pháp - listName.remove_if (Con trỏ hàm / đối tượng hàm)

    Thông số - nó nhận một tham số duy nhất làm con trỏ hàm hoặc đối tượng hàm.

    Giá trị trả lại - nó trả về true khi tất cả các phần tử bị xóa.

  • Xóa () - Hàm này được sử dụng để xóa một phần tử cũng như nhiều phần tử tùy thuộc vào tham số được truyền cho nó

    Cú pháp -:iterator listName.erase (vị trí của trình lặp) listName.erase (iterator First_ele, iterator Last_ele)

    Thông số - Trong cú pháp Đầu tiên, nó có vị trí tham số chỉ định vị trí mà tại đó phần tử sẽ bị xóa khỏi vùng chứa danh sách. Trong cú pháp Thứ hai, nó lấy tham số là phần tử đầu tiên và phần tử cuối cùng chỉ định phạm vi mà từ đó các phần tử sẽ bị xóa

    Giá trị trả lại - nó trả về một trình lặp trỏ đến phần tử bị xóa cuối cùng.

  • Rỗng () - Chức năng này được sử dụng để kiểm tra xem danh sách có trống hay không.

    Cú pháp - listName.empty ()

    Thông số - Không có tham số

    Giá trị trả lại -

    • Trả về true - khi danh sách trống

    • Trả về false - khi danh sách không trống.

  • Bắt đầu () - Hàm này trả về một trình lặp trỏ đến phần tử đầu tiên trong danh sách.

    Cú pháp - listName.begin ()

    Thông số - Không có tham số

    Giá trị trả lại - Trả về một trình lặp trỏ đến phần tử đầu tiên trong danh sách.

  • End () - Hàm này trả về một trình lặp trỏ đến phần tử cuối cùng trong danh sách.

    Cú pháp - listName.end ()

    Thông số - Không có tham số

    Giá trị trả lại - Trả về một trình lặp trỏ đến phần tử kết thúc trong danh sách.
    rbegin () - Hàm này trả về một trình lặp ngược trỏ đến phần tử cuối cùng trong danh sách.
    Cú pháp - listName.rbegin ()
    Thông số - Không có tham số
    Giá trị trả lại - Trả về một trình lặp ngược trỏ đến phần tử kết thúc trong danh sách.

  • rend () - Hàm này trả về một trình lặp ngược trỏ đến phần tử đầu tiên trong danh sách.

    Cú pháp - listName.rend ()

    Thông số - Không có tham số

    Giá trị trả lại - Trả về một trình lặp ngược trỏ đến phần tử đầu tiên trong danh sách.

  • Cbegin () - Hàm này được sử dụng để trả về một trình lặp truy cập ngẫu nhiên không đổi trỏ đến đầu danh sách.

    Cú pháp - listName.cbegin ()

    Thông số - Không có tham số

    Giá trị trả lại - trả về một trình lặp truy cập ngẫu nhiên không đổi trỏ đến đầu danh sách.

  • Cend () - - Hàm này được sử dụng để trả về một trình lặp truy cập ngẫu nhiên không đổi trỏ đến cuối danh sách.

    Cú pháp - listName.cend ()

    Thông số - Không có tham số

    Giá trị trả lại - trả về một trình lặp truy cập ngẫu nhiên không đổi trỏ đến cuối danh sách.

  • Crbegin () - Hàm này được sử dụng để trả về một trình lặp đảo ngược truy cập ngẫu nhiên không đổi trỏ đến cuối danh sách.

    Cú pháp - listName.crbegin ()

    Thông số - Không có tham số

    Giá trị trả lại - trả về một trình lặp đảo ngược truy cập ngẫu nhiên không đổi trỏ đến cuối danh sách.

  • Crend () - Hàm này được sử dụng để trả về một trình lặp đảo ngược truy cập ngẫu nhiên không đổi trỏ đến đầu danh sách.

    Cú pháp - listName.crend ​​()

    Thông số - Không có tham số

    Giá trị trả lại - trả về một trình lặp đảo ngược truy cập ngẫu nhiên liên tục trỏ đến đầu danh sách.

  • đảo ngược () - Hàm này được sử dụng để đảo ngược tất cả các phần tử trong vùng chứa danh sách.

    Cú pháp - listName.reverse ()

    Thông số - Không có tham số

    Giá trị trả lại - Không có giá trị trả lại

  • duy nhất () - Hàm này được sử dụng để xóa tất cả các phần tử trùng lặp liên tiếp khỏi danh sách.

    Cú pháp - listName.unique (vị từ coi hai giá trị giống nhau)

    Thông số - nó nhận tham số tùy chọn trả về true khi hai phần tử cần được coi là giống nhau.

    Giá trị trả lại - Không có giá trị trả lại

  • emplace () - Hàm này được sử dụng để chèn phần tử mới vào vị trí đã cho.

    Cú pháp - listName.emplace (vị trí, giá trị)

    Thông số - Nó có hai tham số, một tham số chỉ định vị trí mà phần tử cần được chèn và một tham số khác cho biết giá trị phần tử cần được chèn.

    Giá trị trả lại - trả về một trình lặp trỏ đến phần tử mới được chèn vào.

  • Emplace_front () - Hàm này dùng để chèn phần tử mới vào đầu danh sách.

    Cú pháp - listName.emplace_front (phần tử)

    Thông số - Cần một tham số chỉ định giá trị sẽ được chèn vào

    Giá trị trả lại - Không có giá trị trả lại.

  • Emplace_back () - Hàm này dùng để chèn phần tử mới vào cuối danh sách.

    Cú pháp - listName.emplace_back (phần tử)

    Thông số - Cần một tham số chỉ định giá trị sẽ được chèn vào

    Giá trị trả lại - Không có giá trị trả lại.

  • Nhà điều hành (=) - toán tử này được sử dụng để thay thế nội dung của một danh sách bằng một danh sách khác.

    Cú pháp - listName_1 =listName_2

    Thông số - Không có tham số

    Giá trị trả lại - Không có giá trị trả lại.

  • Hoán đổi () - chức năng này được sử dụng để hoán đổi nội dung của một danh sách này bằng một danh sách khác cùng loại

    Cú pháp - listName_1.swap (listName_2)

    Thông số - Không có tham số

    Giá trị trả lại - Không có giá trị trả lại.

  • Hợp nhất () - chức năng này được sử dụng để hợp nhất các phần tử thành hai danh sách.

    Cú pháp - listName_1.merge (listName_2)

    Thông số - Không có tham số

    Giá trị trả lại - Không có giá trị trả lại.