Cắt list trong C++ | Laptrinhcanban.com

Cắt list trong C++

Hướng dẫn cách cắt list trong C++. Bạn sẽ học được cách sử dụng 2 hàm cơ bản là hàm front() và hàm back() để cắt list trong C++ sau bài học này.

Chúng ta có 3 phương pháp cơ bản để cắt list trong C++ như sau:

  • Hàm front(): Cắt phần tử đầu tiên từ list
  • Hàm data(): Cắt phần tử cuối cùng từ list
  • Cắt một phạm vi từ list

Cắt phần tử đầu tiên từ list trong C++ bằng hàm front

Hàm front là một hàm thành viên trong class std:list, có tác dụng tham chiếu đến phần tử đầu tiên trong list.

Bằng cách ứng dụng hàm front(), chúng ta không những có thể cắt ra giá trị của phần tử đầu tiên trong list, mà còn có thể thay đổi giá trị của phần tử đầu tiên đó.

Chúng ta sử dụng hàm front trong C++ với cú pháp sau đây:

lst.front();

Trong đó lst là list cần cắt ra phần tử ban đầu. Hàm front() sẽ trả về tham chiếu tới phần tử đầu tiên của list, qua đó chúng ta có thể cắt lấy giá trị của phần tử đầu tiên này, hoặc là gán một phần tử khác để thay đổi nó.

Lưu ý chúng ta không dùng hàm front() cho list trống nhé.

Ví dụ cụ thể:

#include <iostream>
#include <list>
using namespace std;

//Tạo hàm xuất list
void dump(list<int>& lst)
{
for (auto x: lst) {
cout << " "<< x ;
}
cout << endl;
}

int main() {
list<int> lst{3, 1, 4, 1, 5, 7, 9};
dump(lst);

//Tạo tham chiếu tới vị trí phần tử đầu tiên của list
int front_element = lst.front();
cout << front_element << endl;

//Thay đổi phần tử đầu tiên
lst.front() = 2;
dump(lst);

return 0;
}

Kết quả:

3 1 4 1 5 7 9
3
2 1 4 1 5 7 9

Cắt phần tử cuối cùng từ list trong C++ bằng hàm back

Hàm back là một hàm thành viên trong class std:list, có tác dụng tham chiếu đến phần tử cuối cùng trong list.

Bằng cách ứng dụng hàm back(), chúng ta không những có thể cắt ra giá trị của phần tử cuối cùng trong list, mà còn có thể thay đổi giá trị của phần tử cuối cùng đó.

Chúng ta sử dụng hàm back trong C++ với cú pháp sau đây:

lst.back();

Trong đó lst là list cần cắt ra phần tử ban đầu. Hàm back() sẽ trả về tham chiếu tới phần tử cuối cùng của list, qua đó chúng ta có thể cắt lấy giá trị của phần tử cuối cùng này, hoặc là gán một phần tử khác để thay đổi nó.

Lưu ý chúng ta không dùng hàm back() cho list trống nhé.

Ví dụ cụ thể:

#include <iostream>
#include <list>
using namespace std;

//Tạo hàm xuất list
void dump(list<int>& lst)
{
for (auto x: lst) {
cout << " "<< x ;
}
cout << endl;
}

int main() {
list<int> lst{3, 1, 4, 1, 5, 7, 9};
dump(lst);

//Tạo tham chiếu tới vị trí phần tử cuối cùng của list
int back_element = lst.back();
cout << back_element << endl;

//Thay đổi phần tử cuối cùng
lst.back() = 2;
dump(lst);

return 0;
}

Kết quả:

3 1 4 1 5 7 9
3
2 1 4 1 5 7 9

Cắt một phạm vi từ list

Để cắt một phạm vi từ list ban đầu, chúng ta sử dụng vòng lặp hoặc trình lặp để truy cập tuần tự vào các phần tử trong list để lấy các giá trị trong phạm vi cần cắt. Sau đó, chúng ta lưu các giá trị này vào list kết quả là xong.

Và để thêm phần tử vào list, chúng ta sẽ cần dùng đến hàm push_back() trong C++ mà Kiyoshi đã hướng dẫn trong bài .

Ví dụ cụ thể:

#include <iostream>
#include <list>
using namespace std;

//Tạo hàm xuất list
void dump(list<int>& lst)
{
for (auto x: lst) {
cout << " "<< x ;
}
cout << endl;
}

int main() {
list<int> lst{3, 1, 4, 1, 5, 7, 9};
dump(lst);

//Khai báo list chứa kết quả
list<int> lst2;

//Khai báo phạm vi cắt
int start = 2, end = 4;

//Truy cập vào phạm vi để lấy và lưu các phần tử vào list kết quả
int count = 0;
for (int x: lst) {
if (count >= 2 && count <= 4)
lst2.push_back(x);
count += 1;
}

dump(lst2);

return 0;
}

Kết quả:

3 1 4 1 5 7 9
4 1 5

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về cách cắt list trong C++ rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về C++ trong các bài học tiếp theo.

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.