std::string::operator+=
#include <string>
// (1) Nối thêm một chuỗi string khác
string& operator+= (const string& str);
// (2) Nối thêm một chuỗi ký tự C-style
string& operator+= (const char* s);
// (3) Nối thêm một ký tự
string& operator+= (char c);
// (4) Nối thêm một initializer list (từ C++11)
string& operator+= (initializer_list<char> il);
Nối (append) thêm nội dung vào cuối chuỗi hiện tại. Nó cung cấp một cách ngắn gọn và tiện lợi để mở rộng chuỗi.
Tham số
str
- Chuỗi std::string cần nối thêm vào chuỗi hiện tại (phiên bản 1).
s
- Con trỏ đến chuỗi ký tự C-style (kết thúc bằng ký tự null) cần nối thêm (phiên bản 2).
c
- Ký tự cần nối thêm (phiên bản 3).
il
- Initializer list chứa các ký tự cần nối thêm (phiên bản 4).
Giá trị trả về
*this
- Tham chiếu đến chính đối tượng std::string hiện tại sau khi đã nối thêm nội dung, cho phép thực hiện toán tử
+=
nhiều lần (chained operations).
Đặc điểm
- Toán tử
+=
thay đổi trực tiếp nội dung của chuỗi, không tạo ra một chuỗi mới. - std::string tự động quản lý bộ nhớ, bạn không cần phải lo lắng về việc cấp phát hay giải phóng bộ nhớ khi sử dụng
+=
. - Toán tử
+=
có thể được sử dụng nhiều lần liên tiếp (chained operations), ví dụ:str += "Hello" += " " += "world!";
- Toán tử
+=
thường hiệu quả hơn so với việc sử dụng toán tử+
nhiều lần để tạo ra các chuỗi trung gian. - Toán tử
+=
được nạp chồng để có thể nối thêm nhiều kiểu dữ liệu khác nhau vào chuỗi, bao gồm:- std::string khác
- Chuỗi ký tự C-style (const
char*
) - Ký tự đơn (
char
) - Initializer list (từ C++11)
- Toán tử
+=
thay đổi trực tiếp chuỗi hiện tại (bên trái toán tử), không tạo ra một chuỗi mới. - std::string tự động quản lý bộ nhớ, toán tử
+=
sẽ đảm nhiệm việc cấp phát lại bộ nhớ nếu cần thiết khi nối thêm nội dung. - Toán tử
+=
thường được sử dụng để:- Mở rộng chuỗi bằng cách thêm nội dung vào cuối.
- Xây dựng chuỗi dần dần từ nhiều phần nhỏ hơn.
- Nối chuỗi trong các vòng lặp hoặc các cấu trúc điều khiển.
Ví dụ
#include <iostream>
#include <string>
int main() {
std::string str = "Hello";
// Nối thêm chuỗi string khác
str += " ";
std::cout << "str after += \" \": " << str << std::endl;
// Nối thêm chuỗi ký tự C-style
str += "world";
std::cout << "str after += \"world\": " << str << std::endl;
// Nối thêm ký tự
str += '!';
std::cout << "str after += '!': " << str << std::endl;
// Nối thêm initializer list
str += { ' ', 'A', 'B', 'C' };
std::cout << "str after += {' ', 'A', 'B', 'C'}: " << str << std::endl;
return 0;
}
Các hàm liên quan
append | Nối thêm nội dung vào cuối chuỗi hiện tại |
assign | Gán nội dung mới cho chuỗi, thay thế nội dung hiện tại của nó |
= | Gán một giá trị mới cho một đối tượng std::string, thay thế nội dung hiện tại của nó |
insert | Chè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 |
replace | Thay thế một phần của chuỗi bằng một nội dung mới |