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

std::vector::back

#include <vector>

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

      reference back();
const_reference back() const;

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

frontTrả về phần tử đầu tiên của vector
atTruy cập phần tử tại chỉ số được chỉ định (có kiểm tra giới hạn)
[]Truy cập phần tử tại chỉ số được chỉ định (không kiểm tra giới hạn)
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