Vector is a very important concept in programming and often people get confused between arrays and vectors. Let's demystify the concept. A vector is a dynamic array, which implies that its data allocation can be increased or decreased at runtime, and we will see how this can be done with a simple built-in function. Vectors are implemented in Rust as standard library types, namely Vec<T>. Here, T means that we can have vectors of any data type; vectors always allocate their data on the heap and we can create them with the vec! macro.