In this post, you’ll get answers to these questions:
- What are the Vectors in C++?
- How can we use std::vector?
- How can I define vectors for different data types?
- Can I define structs or other datatypes in std::vector?
By learning how to define vectors in modern C++ on Windows, it will help you to build C++ applications with the use of a C++ IDE.
Arrays and structs in C++ are explained well in our previous posts. These were coming from the C, in this post, we will explain another great feature of C++, The Vectors.
Vectors are dynamic arrays included in <vector> library in modern C++ and they can resize themselves automatically when a member of a vector is inserted or deleted. Vectors are the same as dynamic arrays and these dynamic arrays of vectors are handled automatically by the container. Vectors are the way of Modern C++; their members are placed in the contiguous memory storage, thus they can be resized, and can be accessed and traversed using iterators.
When we Insert data into vectors it may more time than static arrays because of the need of extending the vector array. Vectors have low memory usage as in dynamic array implementations, because of having good data cache utilization and locality of reference. We can easily access an element of a vector by giving its index between ‘[‘ and ‘]’ just as we do with arrays, which means vector members can be referenced by indices.
Vectors allow random access; that is, an element of a vector may be referenced in the same manner as elements of arrays (by array indices). Linked lists and sets, on the other hand, do not support random access or pointer arithmetic. Vectors are very useful for storing data in lists whose number of elements (length in total) may not be known before setting up the list. Because the vector data structure allocates the necessary memory needed for specific data storage erasing and clearing vector elements from a vector does not need to free any of the memory associated with that element. That makes vectors much more safe and modern in C++ than arrays.
A vector can be defined in this syntax,
1 2 3 |
std::vector<object type> variable_name; |
Now let’s see how we can define different vector types.
How to define C++ Vector types?
The object type of a vector can be a Boolean, char, integer, float, double, string, complex number, struct and any other object types in C++. This allows you to use any datatype as a dynamic array. Here are definition examples of various kinds of vectors;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
#include <iostream> #include <vector> #include <complex> #include <string> struct mystruct { float m,x,y,z; }; int main() { std::vector<bool> vecb; // Vector in bits std::vector<char> vecc; // Vector in bytes std::vector<int> veci; // Vector in integers std::vector<float> vecf; // Vector in floats std::vector<double> vecd; // Vector in doubles std::vector<long int> vecl; // Vector in long integers std::vector<std::string> vecs; // Vector in strings std::vector<std::complex<double>> veccomp; // Vector in complex numbers std::vector<struct mystruct> vecstruct; // Vector in structure form } |
C++ Builder is the easiest and fastest C and C++ IDE for building simple or professional applications on the Windows, MacOS, iOS & Android operating systems. It is also easy for beginners to learn with its wide range of samples, tutorials, help files, and LSP support for code. RAD Studio’s C++ Builder version comes with the award-winning VCL framework for high-performance native Windows apps and the powerful FireMonkey (FMX) framework for cross-platform UIs.
There is a free C++ Builder Community Edition for students, beginners, and startups; it can be downloaded from here. For professional developers, there are Professional, Architect, or Enterprise versions of C++ Builder and there is a trial version you can download from here.