C++C++11C++14C++17Introduction to C++Learn C++

This Is How String Capacity And Lengths Work In A C++ App

This Is How String Capacity And Lengths Work In A C++ App

How can I use the string capacity and length methods in a C++ app? What kind of methods I can use to get size of a std::string? How can I use the empty() method with strings? How to get length() of a std::string? How can I use size() property of a std::string? How can I use max_size() property of a std::string? How can I retrieve capacity of a string? How can I use reserve() method ? How to use shrink_to_fit() method?

What sort of string methods are available to a C++ app?

Modern C++ uses Strings, Wide Strings, and Unicode Strings to support worldwide languages. Strings (std::string) uses char as the character type which means they are ASCII chars and they are an instantiation of the basic_string class template. In C++, there are several typedefs for common character types and one of them is std::string types that are defined in header <string>.

strings are the string class for byte characters represented with string and alphanumeric characters are stored and displayed in string forms. In other terms, string stores the alphanumeric text with 1-byte chars called char. Strings are the instantiation of the basic_string class template that uses char as the character type. In modern C++, simply we can define a string as below,

Strings (string) are a class contains arrays of characters with useful methods, and we can access, or modify their characters easily. In C++, while string contents are defined between ” and “, characters are defined between ‘ and ‘.

The string has methods to append, assign, copy, align, replace or operate with other strings. These methods can be used in all string methods with their appropriate syntax. We can access to capacity properties of a string with size()length(),_max_size(), capacity(), empty(), reserve(), shrink_to_fit() methods. 

What does the capacity property and empty methods of a String actually do?

Learning to use empty() Method in C++

empty() method is a String Method that checks if string has no character, in other terms its size is 0 or it is equal to “”. It checks if begin() iterator is equal to end() itarator.

Syntax:

empty() method example,

What does the String length() and size() properties do in a C++ app?

length() method and size() method are string methods that returns the number of characters (CharT) in a string.

Syntax:

Here is an example about length() and size() methods

As we know both methods are same, there is no difference in results.

Learn to use max_size() method in C++

max_size() method is a String Method that returns the maximum number characters for a string is able to hold due to system or library implementation limitations. For example this max_size() can be 4294967294, which means you can create a string in that maximum number of characters.

Syntax:

Here is an example about using max_size() method,

Learn to use C++ capacity() method

capacity() method is a String Method that returns the currently allocated storage that the string.

Syntax:

Here is an example about using max_size() method,

What does the C++ String reserve() method do?

reserve() method is a String Method that reserves a and defines a new capacity for the string.

reserve method checks the current capacity and size of string,
– If newcapacity parameter is greater than the current capacity(), new storage is allocated, and capacity() is set to this newcapacity.
– If newcapacity parameter is less than it’s current capacity(), this is a non-binding shrink request.
– If newcapaicty parameter is less than it’s current size(), this is a non-binding shrink-to-fit request equivalent to shrink_to_fit()
– If newcapacity is less than or equal to the current capacity(), there is no effect.

Here is an example,

As an output Size will be 16 and Capacity will be 31 that means there is no effect to reserve.

How to use shrink_to_fit() method in a C++ app

shrink_to_fit() method is a String Method that requests the removal of unused capacity of the string.

Here is an example

How to get Information about a String with string properties

Let’s prepared a str_info() function to get information about a string. Here is a full example about to get string properties and about to use other capacity methods,

Oh hi there 👋
It’s nice to meet you.

Sign up to receive awesome C++ content in your inbox, every day.

We don’t spam! Read our privacy policy for more info.

About author

Dr. Yilmaz Yoru has 35+ years of coding with more than 30+ programming languages, mostly C++ on Windows, Android, Mac-OS, iOS, Linux, and some other operating systems. He graduated and received his MSc and PhD degrees from the Department of Mechanical Engineering of Eskisehir Osmangazi University. He is the founder and CEO of ESENJA LLC Company. His interests are Programming, Thermodynamics, Fluid Mechanics, Artificial Intelligence, 2D & 3D Designs, and high-end innovations.
Related posts
C++C++11C++14C++17C++20Introduction to C++Learn C++

Learn Copy Constructors in C++ Classes

C++C++11C++14C++17Introduction to C++Learn C++Syntax

Learn How To Use Types Of Destructors In C++?

C++C++11C++14Learn C++Syntax

How To Convert u32string To A wstring In C++

C++C++11C++14C++17C++20Introduction to C++Learn C++

How To Learn The Move Constructors In Modern C++?