std::list::resize(3)
π¦ std::list::resize(3) π¦
okay bestie, welcome to the C++ Standard Libary manual page for std::list::resize π
this one is short and sweet but still ate, fr fr.
β¨ NAME β¨
std::list::resize - std::list::resize
(no cap, thatβs literally what the NAME section says π)
πΈ Synopsis πΈ
void resize( size_type count ); (1)
void resize( size_type count, const value_type& value ); (2)
So resize resizes the container to contain count elements, and does nothing if count == size(). Iconic behavior, honestly.
If the current size is greater than count, the container is reduced to its first count elements.
If the current size is less than count:
- additional default-inserted elements are appended.
- additional copies of
valueare appended.
π Parameters π
countβ new size of the containervalueβ the value to initialize the new elements with
π«Ά Type requirements π«Ά
Tmust meet the requirements ofDefaultInsertablein order to use overload (1).Tmust meet the requirements ofCopyInsertablein order to use overload (2).
π Return value π
(none) β literally nothing comes back, bestie.
π₯ Complexity π₯
Linear in the difference between the current size and count.
π Notes π
If value-initialization in overload (1) is undesirable, for example, if the elements are of non-class type and zeroing out is not needed, it can be avoided by providing a custom Allocator::construct.
π Example π
// Run this code
#include <list>
#include <iostream>
void print(auto rem, const std::list<int>& c)
{
for (std::cout << rem; const int el : c)
std::cout << el << ' ';
std::cout << '\n';
}
int main()
{
std::list<int> c = {1, 2, 3};
print("The list holds: ", c);
c.resize(5);
print("After resize up to 5: ", c);
c.resize(2);
print("After resize down to 2: ", c);
c.resize(6, 4);
print("After resize up to 6 (initializer = 4): ", c);
}
β Output β
The list holds: 1 2 3
After resize up to 5: 1 2 3 0 0
After resize down to 2: 1 2
After resize up to 6 (initializer = 4): 1 2 4 4 4 4
π§ Defect reports π§
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
- DR
LWG 132β Applied to:C++98. Behavior as published: random-access iterators were used to determine the erase range. Correct behavior: use bidirectional iterators. - DR
LWG 679β Applied to:C++98. Behavior as published:resize()passedvalueby value. Correct behavior: passes byconst reference. - DR
LWG 1420β Applied to:C++98. Behavior as published: the behavior ofresize(size())was not specified. Correct behavior: specified.
π See also π
sizeβ returns the number of elements (public member function)insertβ inserts elements (public member function)eraseβ erases elements (public member function)
this cutie came from http://cppreference.com, dated 2024.06.10, and the page is std::list::resize(3) β byeee π«Άπ
π¦ where this page comes from
- nixpkgs unstable: stdman 2024.07.05
- opensuse-leap 16.0: stdman 2024.07.05-bp160.1.9 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms