Create and Delete
Below, we examine the different methods available for constructing/destroying containers with particular parameters.
You can construct each container by a multitude of constructors. To delete all elements of a container cont
, you can use cont.clear()
. It makes no difference if you create a container, if you delete them or if you add or remove elements. Each time the container takes care of the memory management.
The table shows you the constructors and destructors of a container. A std:vector
stands for the rest of them.
Type | Example |
---|---|
Default | std::vector<int> vec1 |
Range | std::vector<int> vec2(vec1.begin(), vec1.end()) |
Copy | std::vector<int> vec3(vec2) |
Copy | std::vector<int> vec3= vec2 |
Move | std::vector<int> vec4(std::move(vec3)) |
Move | std::vector<int> vec4= std::move(vec3) |
Sequence (Initializer list) | std::vector<int> vec5 {1, 2, 3, 4, 5} |
Sequence (Initializer list) | std::vector<int> vec5= {1, 2, 3, 4, 5} |
Destructor | vec5.~vector() |
Delete elements | vec5.clear() |
Creation and deletion of a container
Because std::array
is generated at compile-time, there are a few things that are special. std::array
has no move constructor and can neither be created with a range nor with an initialiser list. However, you can initialize a std::array
with an aggregate initialization. Also, std::array
has no method for removing its elements.
Now I can use the different constructors on the different containers.
Get hands-on with 1200+ tech skills courses.