C++ 标准模板库 (STL) 提供了各种用于处理数据结构的有用类和函数,包括用于操作字符串的 std::string 类。 std::string 类的函数之一是 shrink_to_fit() 函数,它允许开发人员将分配给字符串的内存量减少到存储其当前内容所需的最小量。
在 C++ 中使用字符串时,请务必记住 std::string 类被设计为动态调整大小的字符串。这意味着该类可能会分配比存储字符串内容实际需要的更多的内存。 shrink_to_fit() 函数允许开发人员将分配给字符串的内存量减少到存储其当前内容所需的最小量。这在需要考虑内存使用情况的情况下非常有用,例如在 resource-constrained 环境中或处理大量数据时。
需要注意的是,shrink_to_fit() 并不保证容量会减少,它只是请求减少,但实现可以忽略它。
另外,值得注意的是,这个函数不会改变字符串的大小,只会改变容量。大小将继续反映字符串中的字符数,而容量将是为字符串分配的内存量。
我建议使用命名空间 std; C++ 中的指令可能被认为是不好的做法,因为它可能导致命名冲突并使代码更难以阅读和理解。
用法:
s.shrink_to_fit();
Parameters: 该函数不接受任何参数。
返回值:该函数不返回任何内容。
可以使用点表示法对字符串对象调用 shrink_to_fit() 函数。例如,以下代码演示了如何使用shrink_to_fit()函数来减少为字符串分配的内存量:
例子:
C++
// C++ Program to demonstrate the working of
// shrink_to_fit() function
#include <iostream>
#include <string>
//using namespace std;
int main()
{
// Initializing string
std::string str = "geeksforgeeks is best";
// Displaying string
std::cout << "String is: " << str << "\n";
// Displaying length of the string
std::cout << "Size of the string is :" << str.length()
<< "\n";
// Resizing string using resize()
str.resize(13);
// Displaying string
std::cout << "After resizing string is: " << str << "\n";
// Displaying capacity of string
std::cout << "Capacity of the string is :" << str.capacity()
<< "\n";
// Decreasing the capacity of string
// using shrink_to_fit()
str.shrink_to_fit();
// Displaying new length of the string
std::cout << "New size of the string is :" << str.length()
<< "\n";
// Displaying new capacity of string
std::cout << "New capacity of the string is :"
<< str.capacity() << "\n";
}
String is: geeksforgeeks is best Size of the string is :21 After resizing string is: geeksforgeeks Capacity of the string is :21 New size of the string is :13 New capacity of the string is :13
时间复杂度:O(N),N 是字符串的长度。
辅助空间:O(N),因为字符串是不可变的。
相关用法
- C++ string at()用法及代码示例
- C++ string::length()用法及代码示例
- C++ string::npos用法及代码示例
- C++ strtod()用法及代码示例
- C++ strtol()用法及代码示例
- C++ strtoll()用法及代码示例
- C++ strtoull()用法及代码示例
- C++ strcpy()用法及代码示例
- C++ strncpy()用法及代码示例
- C++ strcat()用法及代码示例
- C++ strncat()用法及代码示例
- C++ strcmp()用法及代码示例
- C++ strncmp()用法及代码示例
- C++ strchr()用法及代码示例
- C++ strspn()用法及代码示例
- C++ strcspn()用法及代码示例
- C++ strpbrk()用法及代码示例
- C++ strrchr()用法及代码示例
- C++ strstr()用法及代码示例
- C++ strtok()用法及代码示例
- C++ strlen()用法及代码示例
- C++ strerror()用法及代码示例
- C++ strcoll()用法及代码示例
- C++ strxfrm()用法及代码示例
- C++ strftime()用法及代码示例
注:本文由纯净天空筛选整理自kg_codex大神的英文原创作品 string shrink_to_fit() function in C++ STL。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。