C++ STL 中的 deque::shrink_to_fit


本文将讨论 C++ STL 中 deque::shrink_to_fit() 函数的工作原理、语法和示例。

什么是 Deque?

Deque 是双端队列,是一种序列容器,可以在两端进行扩展和收缩操作。队列数据结构只允许用户在末尾插入数据,在头部删除数据。让我们以公交站的队列为例,人们只能在队列末尾插入,而站在队列头部的人第一个被移除;而在双端队列中,可以在两端进行数据插入和删除操作。

什么是 deque::shrink_to_fit()?

deque::shrink_to_fit() 是 C++ STL 中的一个内置函数,声明在 <deque> 头文件中。deque::shrink_to_fit() 将 deque 容器的容量缩减到指定的合适大小,并移除所有超出此大小的元素。当遇到大小问题或容器超过指定大小时,此函数非常有用。

语法

mydeque.shrink_to_fit();

此函数不需要参数。

返回值

此函数不返回任何值。

示例

Input: deque<int> mydeque = {10, 20 30, 40, 0, 0, 0};
   mydeque.shrink_to_fit();
Output:
   Size of the mydeque = 40

示例

 在线演示

#include <bits/stdc++.h>
using namespace std;
int main(){
   deque<int> Deque(50);
   cout<<"Initial size of Deque is : " << Deque.size();
   Deque.resize(40);
   cout<<"\nDeque size after resizing it : " << Deque.size() << endl;
   Deque.shrink_to_fit();
   return 0;
}

输出

如果运行以上代码,将生成以下输出:

Initial size of Deque is : 50
Deque size after resizing it : 4

示例

 在线演示

#include <bits/stdc++.h>
using namespace std;
int main(){
   deque<int> Deque(10);
   for (int i = 0; i <= 5; i++)
   Deque[i] = i;
   cout<<"Initial size of Deque is: " << Deque.size();
   cout<<"\n Deque elements are: ";
   for (int i = 0; i <= 7; i++)
      cout << Deque[i] << " ";
   Deque.resize(10);
   cout << "\n After resizing deque size is : "<<Deque.size();
   cout << "\n Deque elements are: ";
   for (int i = 0; i < 10; i++)
      cout << Deque[i] << " ";
   Deque.shrink_to_fit();
   return 0;
}

输出

如果运行以上代码,将生成以下输出:

Deque elements are: 0 1 2 3 4 5 0 0
After resizing deque size is : 10
Deque elements are: 0 1 2 3 4 5 0 0 0 0

更新于:2020年3月5日

199 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告