Methods to Insert Elements into the Vector
There are multiple methods to insert elements inside a vector of structures:
- Using push_back()
- Individual insertion
- Using the Initializer list constructor
- Using range constructor
- Using custom constructor
1. Using push_back() Method
push_back() is used for inserting elements at the end position in a vector. We can use this method to insert structure into vector.
C++
// C++ Program to initialize // vector of struct // Using push_back() #include <bits/stdc++.h> using namespace std; // Declaring a structure struct Author { string author_name; int article_count; int article_views; }; int main() { // Declaring the vector of structs struct Author A[] = { { "Geek1" , 124, 65000 }, { "Geek2" , 156, 100000 }, { "Geek3" , 10, 200 } }; vector<Author> v; // Insertion of elements using push_back() for ( int i = 0; i < sizeof (A) / sizeof (A[0]); i++) { v.push_back(A[i]); } cout << "author_name" << " " << "article_count" << " " << "article_views" << endl; for ( auto & a : v) { cout << a.author_name << " " << a.article_count << " " << a.article_views << endl; } return 0; } |
author_name article_count article_views Geek1 124 65000 Geek2 156 100000 Geek3 10 200
2. Individual Insertion
Inserting every element individual element one by one rather than collective push_back() of structures.
C++
// C++ Program to initialize // vector of struct // Individual insertion #include <bits/stdc++.h> using namespace std; // Declaring a structure struct Author { string author_name; int article_count; int article_views; }; int main() { // Declaring the vector of structs struct Author a1 = { "Geek1" , 124, 65000 }; struct Author a2 = { "Geek2" , 156, 100000 }; struct Author a3 = { "Geek3" , 10, 200 }; vector<Author> v; // Insertion of elements using push_back() v.push_back(a1); v.push_back(a2); v.push_back(a3); cout << "author_name" << " " << "article_count" << " " << "article_views" << endl; for ( auto & a : v) { cout << a.author_name << " " << a.article_count << " " << a.article_views << endl; } return 0; } |
author_name article_count article_views Geek1 124 65000 Geek2 156 100000 Geek3 10 200
3. Using the Initializer List Constructor
The initializer list constructor can be useful when we want elements to be inserted at initializing the vector.
C++
// C++ Program to initialize // vector of struct // Using the Initializer list constructor #include <bits/stdc++.h> using namespace std; // Declaring a structure struct Author { string author_name; int article_count; int article_views; }; int main() { // Declaring the vector of structs vector<Author> v = { { "Geek1" , 124, 65000 }, { "Geek2" , 156, 100000 }, { "Geek3" , 10, 200 } }; cout << "author_name" << " " << "article_count" << " " << "article_views" << endl; for ( auto & a : v) { cout << a.author_name << " " << a.article_count << " " << a.article_views << endl; } return 0; } |
author_name article_count article_views Geek1 124 65000 Geek2 156 100000 Geek3 10 200
4. Using Range Constructor
Range constructor can be very helpful when we want to create a copy vector of the original vector.
C++
// C++ Program to initialize // vector of struct // Using range constructor #include <bits/stdc++.h> using namespace std; // Declaring a structure struct Author { string author_name; int article_count; int article_views; }; int main() { // Declaring the vector of structs vector<Author> v = { { "Geek1" , 124, 65000 }, { "Geek2" , 156, 100000 }, { "Geek3" , 10, 200 } }; // Initializing using range constructor vector<Author> nv(v.begin(), v.end()); cout << "author_name" << " " << "article_count" << " " << "article_views" << endl; for ( auto & a : v) { cout << a.author_name << " " << a.article_count << " " << a.article_views << endl; } return 0; } |
author_name article_count article_views Geek1 124 65000 Geek2 156 100000 Geek3 10 200
5. Using Custom Constructor
A custom constructor is used for conditions where we want some fixed value to be present after the initialization of a vector.
C++
// C++ Program to initialize // vector of struct // Using custom constructor #include <bits/stdc++.h> using namespace std; // Declaring a structure struct Author { string author_name; int article_count; int article_views; }; int main() { // Declaring the vector of structs vector<Author> v(3, { "Geek1" , 124, 65000 }); cout << "author_name" << " " << "article_count" << " " << "article_views" << endl; for ( auto & a : v) { cout << a.author_name << " " << a.article_count << " " << a.article_views << endl; } return 0; } |
author_name article_count article_views Geek1 124 65000 Geek1 124 65000 Geek1 124 65000
C++ Vector of Structs
Prerequisites:
Structures are user-defined datatypes used to group various related variables into one single data type. The structures can contain variables of different data types like int, string, boolean, etc. The variables are called the members of the structure. They become handy when we have to keep track of multiple variables while solving problems.
Vector of structs can be used when there is a situation where we need to keep track of records in a data structure of different people with different characteristics.
Syntax:
vector<struct_name> vector_name;
Contact Us