C++ Deque::shrink_to_fit() 函数



C++ 的std::deque::shrink_to_fit() 函数用于将 deque 的容量减少到适合其大小,释放未使用的内存。此函数是非约束性的,这意味着它充当对实现的请求,并且可能并不总是导致容量减少。它对容器的大小或元素没有影响。

语法

以下是 std::deque::shrink_to_fit() 函数的语法。

void shrink_to_fit();

参数

它不接受任何参数。

返回值

此函数不返回任何内容。

异常

此函数从不抛出异常。

时间复杂度

此函数的时间复杂度为常数,即 O(1)。

示例

在以下示例中,我们将考虑 shrink_to_fit() 函数的基本用法。

#include <iostream>
#include <deque>
int main()
{
    std::deque<int> a;
    for (int x = 0; x < 10; ++x) {
        a.push_back(x);
    }
    std::cout << "Deque size before shrink_to_fit(): " << a.size() << std::endl;
    a.shrink_to_fit();
    std::cout << "Deque size after shrink_to_fit(): " << a.size() << std::endl;
    return 0;
}

输出

以上代码的输出如下:

Deque size before shrink_to_fit(): 10
Deque size after shrink_to_fit(): 10

示例

考虑以下示例,我们将对 deque 使用 clear 和 shrink 操作。

#include <iostream>
#include <deque>
int main()
{
    std::deque<int> a;
    for (int x = 0; x < 5; ++x) {
        a.push_back(x);
    }
    a.clear();
    a.shrink_to_fit();
    std::cout << "Deque size after clear and shrink: " << a.size() << std::endl;
    return 0;
}

输出

以下是以上代码的输出:

Deque size after clear and shrink: 0

示例

在以下示例中,我们将使用调整大小后的 shrink 操作。

#include <iostream>
#include <deque>
int main()
{
    std::deque<int> a;
    for (int x = 0; x < 10; ++x) {
        a.push_back(x);
    }
    a.resize(5);
    a.shrink_to_fit();
    std::cout << "Deque capacity after resizing and shrink: " << a.size() << std::endl;
    return 0;
}

输出

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

Deque capacity after resizing and shrink: 5
deque.htm
广告