cpp vector structure

#include <iostream>
#include <vector>

struct Student {
    int id;
    std::string name;
    double gpa;
};

int main() {
    // Step 1: Declare a vector of type 'Student'
    std::vector<Student> students;

    // Step 2: Create instances of the 'Student' struct
    Student student1 = {1, "John Doe", 3.8};
    Student student2 = {2, "Jane Smith", 3.9};

    // Step 3: Add instances to the vector using 'push_back'
    students.push_back(student1);
    students.push_back(student2);

    // Step 4: Access elements in the vector using index
    std::cout << "Student 1 ID: " << students[0].id << ", Name: " << students[0].name << ", GPA: " << students[0].gpa << std::endl;
    std::cout << "Student 2 ID: " << students[1].id << ", Name: " << students[1].name << ", GPA: " << students[1].gpa << std::endl;

    // Step 5: Iterate through the vector using a loop
    std::cout << "All Students:" << std::endl;
    for (const auto& student : students) {
        std::cout << "ID: " << student.id << ", Name: " << student.name << ", GPA: " << student.gpa << std::endl;
    }

    // Step 6: Modify vector elements
    students[0].gpa = 3.5;

    // Step 7: Remove an element from the vector using 'erase'
    students.erase(students.begin() + 1);

    // Step 8: Check the size of the vector
    std::cout << "Number of students after modifications: " << students.size() << std::endl;

    return 0;
}