Initialize a vector in C++ (7 different ways)
The following are different ways to construct or initialize a vector in C++ STL
1. Initializing by pushing values one by one:
C++
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector< int > vect;
vect.push_back(10);
vect.push_back(20);
vect.push_back(30);
for ( int x : vect)
cout << x << " " ;
return 0;
}
|
2. Specifying size and initializing all values:
C++
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int n = 3;
vector< int > vect(n, 10);
for ( int x : vect)
cout << x << " " ;
return 0;
}
|
3. Initializing like arrays:
C++
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector< int > vect{ 10, 20, 30 };
for ( int x : vect)
cout << x << " " ;
return 0;
}
|
4. Initializing from an array:
C++
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int arr[] = { 10, 20, 30 };
int n = sizeof (arr) / sizeof (arr[0]);
vector< int > vect(arr, arr + n);
for ( int x : vect)
cout << x << " " ;
return 0;
}
|
5. Initializing from another vector:
C++
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector< int > vect1{ 10, 20, 30 };
vector< int > vect2(vect1.begin(), vect1.end());
for ( int x : vect2)
cout << x << " " ;
return 0;
}
|
6. Initializing all elements with a particular value:
C++
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector< int > vect1(10);
int value = 5;
fill(vect1.begin(), vect1.end(), value);
for ( int x : vect1)
cout << x << " " ;
return 0;
}
|
Output
5 5 5 5 5 5 5 5 5 5
7. Initialize an array with consecutive numbers using std::iota:
C++
#include <iostream>
#include <numeric>
#include <vector>
using namespace std;
int main()
{
vector< int > vec(5);
iota(vec.begin(), vec.end(), 1);
for ( int i = 0; i < 5; i++) {
cout << vec[i] << " " ;
}
return 0;
}
|
Time complexity: O(N), where N is the size of the vector.
Auxiliary space: O(N).
Last Updated :
13 Mar, 2024
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...