Vectors and Classes

  1. Store a collection of objects in a vector
    1. Example stores multiple student in a vector
    2. class Student {
      	public:
      		Student(string name = "", char gender = '?', double gpa = 0) {
      			this->name = name;
                  this->gender = gender;
                  this->gpa = gpa;
              }   
      		
      		void Print() {
      			cout << name << " - " << gender 
      			     << " - " << gpa << endl;
      		}
      	
      	private:
      		string name;
      		char gender;
      		double gpa;	
      };
      
      int main() {
      	vector<Student> students;
      	students.push_back(Student("Bob", 'M', 3.2));  
      	students.push_back(Student("Pam", 'F', 3.8)); 
      	students.push_back(Student("Jim", 'M', 2.4));
      	
      	for (Student stu : students) {
      		stu.Print();
      	}
      }
      
  2. A class might use a vector as a private data member
    1. Example stores student's organizations in a vector
    2. class Student {
          public:
              Student(string name = "", char gender = '?', double gpa = 0) {
                  this->name = name;
                  this->gender = gender;
                  this->gpa = gpa;
              }
              
              void AddOrganization(string organization) {
                  organizations.push_back(organization);
              }
              
              void Print() {
                  cout << name << " - " << gender
                       << " - " << gpa << endl;
                  cout << "Organizations:" << endl;
                  if (organizations.size() == 0) {
                      cout << "None";
                  }
                  else {
                      for (int c = 0; c < organizations.size(); c++) {
                          cout << c + 1 << ". " << organizations[c] << endl;
                      }
                  }
              }
           
          private:
              string name;
              char gender;
              double gpa;
              vector<string> organizations;
      };
      
      int main() {
         Student stu("Bob", 'M', 3.2); 
         stu.AddOrganization("Tri Chi Social Club");
         stu.AddOrganization("Student Goverment");
         stu.AddOrganization("Campus Ministry");
         stu.Print();
      
         return 0;
      }