C++ STL中的deque shrink_to_fit函数

C++ STL中的deque shrink_to_fit函数

在C++ STL中, deque::shrink_to_fit() 是一个内置函数,它将容器的容量减小到适合其大小,并销毁超出容量的所有元素。该函数不会缩小容器的大小。当容器分配了比它所需更多的内存时,可以使用该函数释放这些多余分配的内存。 语法:

deque_name.shrink_to_fit()

参数: 该函数不接受任何参数。

返回值: 该函数没有返回值。以下程序说明了上述函数:

示例1

// C++程序,说明
//deque::shrink_to_fit()
#include
using namespace std;
int main()
{
// 初始化deque
deque<int> d(10);
for(int i=0;i<5;i++)
d[i]=i;
//初始化deque
cout<<" Deque size initially: "<<d.size();
cout<<"\n Deque  elements are: ";
for(int i=0;i<10;i++)
cout<<d[i]<<" ";
//改变Deque的大小
//但不销毁元素
d.resize(7);
cout<<"\n Deque size after resize(7): "
<<d.size();
cout<<"\n Deque elements after resize(7) are: ";
for(int i=0;i<10;i++)
cout<<d[i]<<" ";
//收缩到元素大小
//销毁5之后的元素
d.shrink_to_fit();
cout<<"\n Deque size after shrink_to_fit(): "
<<d.size();
cout<<"\n Deque elements after shrink_to_fit() are: ";
for(int i=0;i<10;i++)
cout<<d[i]<<" ";
return 0;
}

输出:

Deque size initially: 10
Deque  elements are: 0 1 2 3 4 0 0 0 0 0 
Deque size after resize(7): 7
Deque elements after resize(7) are: 0 1 2 3 4 0 0 0 0 0 
Deque size after shrink_to_fit(): 7
Deque elements after shrink_to_fit() are: 0 1 2 3 4 0 0 0 0 0

示例2

// C++程序,说明
//deque::shrink_to_fit()
#include
using namespace std;
int main()
{
//创建一个deque
deque<int> d(100);
cout<<"Size of d is : "<<d.size()<<endl;
//调整大小
d.resize(20);
cout<<"Size of d after resize is : "<<d.size()<<endl;
d.shrink_to_fit();
return 0;
}

输出:

Size of d is : 100
Size of d after resize is : 20

时间复杂度: O(n)。//n是deque中元素的数量。

空间复杂度: O(n)。

注意: shrink_to_fit()函数在vector的容器大小经常变化的情况非常有用。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 教程