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的容器大小经常变化的情况非常有用。