Create and Delete
Below, we examine the different methods available for constructing and destroying containers with particular parameters.
We can construct each container using a multitude of constructors. To delete all elements of a container cont
, use cont.clear()
. It makes no difference if you create and delete a container or if we add and remove elements. Each time the container takes care of memory management.
The table shows the constructors and destructors of a container. All these functions can be used with std:vector
.
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’t be created with a range or with an initializer list. However, an std::array
can be initialized with an aggregate initialization. Also, std::array
has no method for removing its elements.
Now we can use the different constructors on the different containers.