Chuyển tới nội dung chính

std::vector::back

#include <vector>

      reference back();
const_reference back() const;

Truy xuất phần tử tại vị trí cuối cùng.

Tham số

Không có tham số

Giá trị trả về

  • Hàm back() trả về tham chiếu tới phần tử cuối cùng của vector. Điều này cho phép bạn truy cập và thay đổi giá trị của phần tử cuối cùng.
  • Hàm back() tương tự như hàm end() - 1, nhưng end() trả về iterator tới phần tử sau phần tử cuối cùng, trong khi back() trả về tham chiếu trực tiếp.
  • Nếu vector là hằng hàm sẽ trả về const_reference. Ngược lại, nó sẽ trả về một tham chiếu.

Đặc điểm

  1. back() trả về tham chiếu (reference) đến phần tử cuối cùng trong vector.
  2. Gọi back() trên một vector rỗng sẽ gây ra hành vi không xác định (undefined behavior).
  3. Thời gian truy cập phần tử là O(1), vì vector lưu trữ phần tử theo cơ chế tuyến tính trong bộ nhớ.
  4. Thay đổi phần tử cuối qua tham chiếu: Nếu gọi trên vector không hằng, bạn có thể trực tiếp sửa đổi giá trị phần tử cuối.

Ví dụ

#include <iostream>
#include <vector>

int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5};

// Truy cập phần tử cuối
std::cout << "Phần tử cuối cùng: " << numbers.back() << '\n';

// Thay đổi phần tử cuối
numbers.back() = 10;
std::cout << "Phần tử cuối sau khi thay đổi: " << numbers.back() << '\n';

return 0;
}

Gọi hàm trên vector hằng

#include <iostream>
#include <vector>

void printLastElement(const std::vector<int>& vec) {
if (!vec.empty()) {
std::cout << "Phần tử cuối cùng: " << vec.back() << '\n';
} else {
std::cout << "Vector rỗng!\n";
}
}

int main() {
std::vector<int> numbers = {1, 2, 3};
printLastElement(numbers);

return 0;
}

Cần kiểm tra vector có rỗng hay không trước khi gọi back():

if (!vector_name.empty()) {
vector_name.back() = value; // An toàn
}

Các hàm liên quan

frontTruy xuất phần tử tại vị trí đầu tiên
atTruy xuất phần tử tại vị trí chỉ định
[]Truy xuất phần tử tại vị trí chỉ định
push_backThêm một phần tử vào cuối vector
pop_backXóa phần tử cuối cùng của vector