std::basic_string<CharT,Traits,Allocator>::size, std::basic_string<CharT,Traits,Allocator>::length
From ru.cppreference.net
size_type size() const;
|
(1) | (noexcept, начиная с C++11) (constexpr, начиная с C++20) |
size_type length() const;
|
(2) | (noexcept, начиная с C++11) (constexpr, начиная с C++20) |
Возвращает количество CharT элементов в строке, то есть std::distance(begin(), end()).
Параметры
(нет)
Возвращаемое значение
Количество
CharT
элементов в строке.
Сложность
|
Не указано |
(until C++11) |
|
Константа |
(since C++11) |
Примечания
Для std::string элементы являются байтами (объектами типа char ), которые не совпадают с символами при использовании многобайтовой кодировки, такой как UTF-8.
Пример
Запустить этот код
#include <cassert> #include <iterator> #include <string> int main() { std::string s("Exemplar"); assert(8 == s.size()); assert(s.size() == s.length()); assert(s.size() == static_cast<std::string::size_type>( std::distance(s.begin(), s.end()))); std::u32string a(U"ハロー・ワールド"); // 8 code points assert(8 == a.size()); // 8 code units in UTF-32 std::u16string b(u"ハロー・ワールド"); // 8 code points assert(8 == b.size()); // 8 code units in UTF-16 std::string c("ハロー・ワールド"); // 8 code points assert(24 == c.size()); // 24 code units in UTF-8 #if __cpp_lib_char8_t >= 201907L std::u8string d(u8"ハロー・ワールド"); // 8 code points assert(24 == d.size()); // 24 code units in UTF-8 #endif }
Смотрите также
|
проверяет, является ли строка пустой
(публичная функция-член) |
|
|
возвращает максимальное количество символов
(публичная функция-член) |
|
|
возвращает количество символов
(публичная функция-член
std::basic_string_view<CharT,Traits>
)
|