Этот сайт использует cookies. Продолжение работы с сайтом означает, что Вы согласны!
Получение и изменение размера строки
Для получения и изменения размера строки предназначены следующие методы:
size()
иlength()
— возвращают текущее количество символов в строке (без учета нулевого символа). Прототипы методов:
size_type size() const noexcept;
size_type length() const noexcept;
Пример:
std::string str("строка");
std::cout << str.size() << std::endl; // 6
std::cout << str.length() << std::endl; // 6
std::wstring wstr(L"строка");
std::cout << wstr.size() << std::endl; // 6
std::cout << wstr.length() << std::endl; // 6
capacity()
— возвращает количество символов, которое можно записать в строку без перераспределения памяти. Прототип метода:
size_type capacity() const noexcept;
Пример:
std::string str("строка");
std::cout << str.size() << std::endl; // 6
std::cout << str.capacity() << std::endl; // 15
str += " строка2 строка3";
std::cout << str.size() << std::endl; // 22
std::cout << str.capacity() << std::endl; // 30
reserve()
— позволяет задать минимальное количество символов, которое можно записать в строку без перераспределения памяти. Как видно из предыдущего примера, выделение дополнительной памяти производится автоматически с некоторым запасом. Если дозапись в строку производится часто, то это может снизить эффективность программы, так как перераспределение памяти будет выполнено несколько раз. Поэтому, если количество символов заранее известно, то следует указать его с помощью методаreserve()
. Прототип метода:
void reserve(size_type res=0);
Пример указания минимального размера строки:
std::string str("строка");
str.reserve(50);
std::cout << str.size() << std::endl; // 6
std::cout << str.capacity() << std::endl; // 50
str += " строка2 строка3";
std::cout << str.size() << std::endl; // 22
std::cout << str.capacity() << std::endl; // 50
shrink_to_fit()
— уменьшает размер строки до минимального значения. Прототип метода:
void shrink_to_fit();
Пример:
std::string str("строка");
str.reserve(50);
std::cout << str.capacity() << std::endl; // 50
str.shrink_to_fit();
std::cout << str.capacity() << std::endl; // 15
resize()
— задает количество символов в строке, равное числуn
. Если указанное количество символов меньше текущего количества, то лишние символы будут удалены. Если количество символов необходимо увеличить, то в параметреch
можно указать символ, который заполнит новое пространство. Если параметрch
не задан, то добавляются нулевые символы. Прототипы метода:
void resize(size_type n);
void resize(size_type n, _CharT ch);
Пример:
std::setlocale(LC_ALL, "Russian_Russia.1251");
std::string str("строка");
str.resize(4);
std::cout << str << std::endl; // стро
str.resize(8, '*');
std::cout << str << std::endl; // стро****
empty()
— возвращает значениеtrue
, если строка не содержит символов, иfalse
— в противном случае. Прототип метода:
bool empty() const noexcept;
Пример:
std::setlocale(LC_ALL, "Russian_Russia.1251");
std::string str("строка");
// str.clear();
if (str.empty()) {
std::cout << "Строка пустая" << std::endl;
}
else {
std::cout << "Строка содержит символы" << std::endl;
}
max_size()
— возвращает максимальное количество символов, которое может содержаться в строке. Прототип метода:
size_type max_size() const noexcept;
Пример:
std::string str("строка");
std::cout << str.max_size() << std::endl; // 9223372036854775807
Реквизиты
ЮMoney (Yandex-деньги): 410011140483022
ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов