
- C++ Library - Home
- C++ Library - <fstream>
- C++ Library - <iomanip>
- C++ Library - <ios>
- C++ Library - <iosfwd>
- C++ Library - <iostream>
- C++ Library - <istream>
- C++ Library - <ostream>
- C++ Library - <sstream>
- C++ Library - <streambuf>
- C++ Library - <atomic>
- C++ Library - <complex>
- C++ Library - <exception>
- C++ Library - <functional>
- C++ Library - <limits>
- C++ Library - <locale>
- C++ Library - <memory>
- C++ Library - <new>
- C++ Library - <numeric>
- C++ Library - <regex>
- C++ Library - <stdexcept>
- C++ Library - <string>
- C++ Library - <thread>
- C++ Library - <tuple>
- C++ Library - <typeinfo>
- C++ Library - <utility>
- C++ Library - <valarray>
- The C++ STL Library
- C++ Library - <array>
- C++ Library - <bitset>
- C++ Library - <deque>
- C++ Library - <forward_list>
- C++ Library - <list>
- C++ Library - <map>
- C++ Library - <multimap>
- C++ Library - <queue>
- C++ Library - <priority_queue>
- C++ Library - <set>
- C++ Library - <stack>
- C++ Library - <unordered_map>
- C++ Library - <unordered_set>
- C++ Library - <vector>
- C++ Library - <algorithm>
- C++ Library - <iterator>
- The C++ Advanced Library
- C++ Library - <any>
- C++ Library - <barrier>
- C++ Library - <bit>
- C++ Library - <chrono>
- C++ Library - <cinttypes>
- C++ Library - <clocale>
- C++ Library - <condition_variable>
- C++ Library - <coroutine>
- C++ Library - <cstdlib>
- C++ Library - <cstring>
- C++ Library - <cuchar>
- C++ Library - <charconv>
- C++ Library - <cfenv>
- C++ Library - <cmath>
- C++ Library - <ccomplex>
- C++ Library - <expected>
- C++ Library - <format>
- C++ Library - <future>
- C++ Library - <flat_set>
- C++ Library - <flat_map>
- C++ Library - <filesystem>
- C++ Library - <generator>
- C++ Library - <initializer_list>
- C++ Library - <latch>
- C++ Library - <memory_resource>
- C++ Library - <mutex>
- C++ Library - <mdspan>
- C++ Library - <optional>
- C++ Library - <print>
- C++ Library - <ratio>
- C++ Library - <scoped_allocator>
- C++ Library - <semaphore>
- C++ Library - <source_location>
- C++ Library - <span>
- C++ Library - <spanstream>
- C++ Library - <stacktrace>
- C++ Library - <stop_token>
- C++ Library - <syncstream>
- C++ Library - <system_error>
- C++ Library - <string_view>
- C++ Library - <stdatomic>
- C++ Library - <variant>
- C++ STL Library Cheat Sheet
- C++ STL - Cheat Sheet
- C++ Programming Resources
- C++ Programming Tutorial
- C++ Useful Resources
- C++ Discussion
C++ Deque::shrink_to_fit() Function
The C++ std::deque::shrink_to_fit() function is used to reduce the capacity of a deque to fit its size, freeing unused memory. This function is non-binding, meaning it serves as a request to the implementation and may not always result in reduced capacity. It has no effect on the size or elements of the container.
Syntax
Following is the syntax for std::deque::shrink_to_fit() function.
void shrink_to_fit();
Parameters
It does not accept any parameter.
Return value
This function does not return anything.
Exceptions
This function never throws exception.
Time complexity
The time complexity of this function is Constant i.e. O(1)
Example
In the following example, we are going to consider the basic usage of the shrink_to_fit() function.
#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; }
Output
Output of the above code is as follows −
Deque size before shrink_to_fit(): 10 Deque size after shrink_to_fit(): 10
Example
Consider the following example, where we are going to use the clear and shrink on the deque.
#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; }
Output
Following is the output of the above code −
Deque size after clear and shrink: 0
Example
In the following example, we are going to use the shrink after resizing.
#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; }
Output
If we run the above code it will generate the following output −
Deque capacity after resizing and shrink: 5