std::vector::assign(3)
std::vector::assign(3) π β C++ Standard Libary
okay bestie, this is the C++ Standard Libary manual page for std::vector::assign, and it's lowkey iconic β¨
πΈ NAME πΈ
std::vector::assign β literally std::vector::assign, the member function that gives your vector a whole new set of contents π
β¨ Synopsis β¨
okay so the overloads are giving main character energy:
void assign( size_type count, const T& value ); (1) (constexpr since C++20)
template< class InputIt > (2) (constexpr since C++20)
void assign( InputIt first, InputIt last );
void assign( std::initializer_list<T> ilist ); (3) (since C++11)
(constexpr since C++20)
Replaces the contents of the container. periodt.
- Overload (1): replaces the contents with
countcopies of the valuevalueπ«Ά - Overload (2): replaces the contents with copies of those in the range
[first, last). The behavior is undefined if either argument is an iterator into*thisπ
This overload has the same effect as overload (1) if InputIt is an integral type. (until C++11)
This overload participates in overload resolution only if InputIt satisfies LegacyInputIterator. (since C++11)
- Overload (3): replaces the contents with the elements from the initializer list
ilistπ
β οΈ All iterators, pointers and references to the elements of the container are invalidated. The past-the-end iterator is also invalidated. no cap, that's the whole vibe check π
π Parameters π
countβ the new size of the containervalueβ the value to initialize elements of the container withfirst,lastβ the range to copy the elements fromilistβ initializer list to copy the values from
π₯ Complexity π₯
- 1) Linear in
count. - 2) Linear in distance between
firstandlast. - 3) Linear in
ilist.size().
π» Example π»
The following code uses assign to add several characters to a std::vector<char>:
// Run this code
#include <vector>
#include <iostream>
#include <string>
int main()
{
std::vector<char> characters;
auto print_vector = [&]()
{
for (char c : characters)
std::cout << c << ' ';
std::cout << '\n';
};
characters.assign(5, 'a');
print_vector();
const std::string extra(6, 'b');
characters.assign(extra.begin(), extra.end());
print_vector();
characters.assign({'C', '+', '+', '1', '1'});
print_vector();
}
π Output π
a a a a a
b b b b b b
C + + 1 1
π See also π
constructorβ constructs the vector (public member function) π«Ά
source/version/date: http://cppreference.com, 2024.06.10, page std::vector::assign(3) β bye bestie, go slay some vectors π
π¦ 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