std::string::length
#include <string>
size_type length() const noexcept;
Trả về số lượng ký tự hiện có trong chuỗi. Chức năng hoàn toàn tương đương với size()
.
Tham số
Không có tham số
Giá trị trả về
size_type
- Một kiểu số nguyên không dấu (thường là std::size_t) đại diện cho số lượng ký tự trong chuỗi.
Đặc điểm
length()
vàsize()
là hoàn toàn tương đương về chức năng và giá trị trả về. Bạn có thể sử dụng hàm nào cũng được, tùy theo sở thích cá nhân.- Giá trị trả về của
length()
là kiểusize_type
, thường là std::size_t. Đây là kiểu số nguyên không dấu, đủ lớn để biểu diễn kích thước của chuỗi. length()
trả về số lượng ký tự hiện có trong chuỗi, không phải là dung lượng (capacity) của chuỗi. Dung lượng là số lượng ký tự mà chuỗi có thể lưu trữ mà không cần phải cấp phát lại bộ nhớ.- Hàm
length()
có độ phức tạp thời gian là hằng số (O(1)
), nghĩa là thời gian thực hiện hàm này rất nhanh và không phụ thuộc vào độ dài của chuỗi. - Hàm
length()
được chỉ định lànoexcept
(từ C++11), nghĩa là nó được đảm bảo không ném ra ngoại lệ. length()
thường được sử dụng để:- Lấy độ dài hiện tại của chuỗi.
- Kiểm tra xem chuỗi có rỗng hay không (thay vì so sánh
length()
với 0, bạn có thể sử dụngempty()
để rõ nghĩa hơn). - Sử dụng trong các vòng lặp để duyệt qua các ký tự của chuỗi.
- Kết hợp với các hàm thành viên khác của std::string để thực hiện các thao tác dựa trên kích thước của chuỗi.
Ví dụ
#include <iostream>
#include <string>
int main() {
std::string str = "Hello, world!";
std::cout << "Length of str: " << str.length() << std::endl;
std::cout << "Size of str: " << str.size() << std::endl; // Tương đương với length()
if (str.empty()) {
std::cout << "str is empty.\n";
} else {
std::cout << "str is not empty.\n";
}
// Duyệt qua chuỗi sử dụng length()
for (std::string::size_type i = 0; i < str.length(); ++i) {
std::cout << str[i] << " ";
}
std::cout << std::endl;
return 0;
}
Các hàm liên quan
size | Trả về số lượng ký tự hiện có trong chuỗi |
resize | Trả về số lượng ký tự tối đa mà một đối tượng std::string có thể chứa |
max_size | Trả về số lượng phần tử tối đa mà std::array có thể chứa |
capacity | Trả về dung lượng bộ nhớ hiện tại được cấp phát cho chuỗi |