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

std::string::push_back

#include <string>

void push_back (charT c);

Thêm (append) một ký tự duy nhất vào cuối chuỗi.

Tham số

c

  • Ký tự cần được thêm vào cuối chuỗi.

Giá trị trả về

Không có giá trị trả về

Đặc điểm

  1. push_back() chỉ có thể thêm một ký tự duy nhất vào cuối chuỗi mỗi lần gọi.
  2. push_back() thay đổi trực tiếp nội dung của chuỗi, không tạo ra một chuỗi mới.
  3. Nếu việc thêm ký tự làm cho kích thước của chuỗi vượt quá dung lượng hiện tại (capacity), std::string sẽ tự động cấp phát lại bộ nhớ để có đủ chỗ chứa. Việc cấp phát lại này có thể làm vô hiệu hóa (invalidate) tất cả các iterator, con trỏ và tham chiếu đến các phần tử của chuỗi.
  4. push_back() có thể ném ra ngoại lệ std::bad_alloc ếu không thể cấp phát đủ bộ nhớ.
  5. push_back() có độ phức tạp thời gian là O(1) trong trường hợp trung bình (amortized constant time), nhưng trong trường hợp xấu nhất (khi cần cấp phát lại), độ phức tạp có thể là O(n), trong đó n là số ký tự trong chuỗi.
  6. push_back() thường được sử dụng khi:
    • Bạn muốn thêm từng ký tự một vào cuối chuỗi.
    • Bạn đang xây dựng một chuỗi ký tự dần dần từ các ký tự riêng lẻ.
    • Bạn muốn mở rộng chuỗi theo từng ký tự.

Ví dụ

#include <iostream>
#include <string>

int main() {
std::string str = "Hello";

str.push_back(' ');
str.push_back('W');
str.push_back('o');
str.push_back('r');
str.push_back('l');
str.push_back('d');
str.push_back('!');

std::cout << "str after push_back: " << str << std::endl;

return 0;
}

Các hàm liên quan

backTrả về tham chiếu đến ký tự cuối cùng của chuỗi
pop_backXóa ký tự cuối cùng khỏi chuỗi
appendNối thêm nội dung vào cuối chuỗi hiện tại
insertChèn thêm nội dung (ký tự, chuỗi, hoặc phạm vi) vào bên trong chuỗi tại một vị trí xác định
endTrả về một iterator trỏ đến vị trí ngay sau ký tự cuối cùng của chuỗi std::string