How to use data() function in C++ STL In C++
data() function in C++ returns a pointer to the first element in the array which is used internally by the vector. There are no parameters accepted by this function.
Example:
C++
// C++ program to convert vector to // array using data() function #include <bits/stdc++.h> using namespace std; int main() { // Initialising the vector vector< int > v{ 1, 2, 3, 4, 5 }; int n = v.size(); // Printing original vector cout << "Vector: " ; for ( int i : v) { cout << i << ' ' ; } cout << endl; // memory pointer pointing to the // first element of array int * arr = v.data(); // Printing the array cout << "Array: " ; for ( int i = 0; i < n; i++) { cout << arr[i] << " " ; } cout << endl; return 0; } |
Vector: 1 2 3 4 5 Array: 1 2 3 4 5
Time Complexity: O(n)
Auxiliary Space: O(1)
Note: Be aware that in case of STL SequenceContainers which can change their size at runtime, like std::vector, there is no guarantee that the memory location of the underlying array will stay same across container manipulations that change the containers size.
Different Ways to Convert Vector to Array in C++ STL
An array is the collection of data belonging to a primitive data type. The data in this is kept in a continuous memory location. Vectors are dynamic arrays that can be resized to meet the needs. We can convert vectors to arrays in the following ways given below.
Example:
Input : Vector: [1, 2, 3, 4, 5]
Output: Array: [1, 2, 3, 4, 5]Input : Vector: [βGβ, βeβ, βeβ, βkβ, βsβ]
Output: Array: [βGβ, βeβ, βeβ, βkβ, βsβ]
- Naive Approach to Convert Vector to Array
- Using copy() function in C++ STL
- Using transform() function in C++ STL
- Using data() function in C++ STL
- Using & operator in C++