// tempexmp.C // template example using vectors, iterators, and for_each() #include #include #include #include using namespace std; struct Person{ string name; int age; }; void ShowPerson(const Person &pp); bool FillPerson(Person &pp); int main() { vector someone; Person temp; // using vectors without an iterator while(FillPerson(temp)){ someone.push_back(temp); } int count = someone.size(); for (int i = 0; i < count; i++){ ShowPerson(someone[i]); } // using vectors with an iterator vector::iterator it; vector people; bool flag = true; while((flag = FillPerson(temp)) != false){ people.push_back(temp); } for(it = people.begin(); it != people.end(); it++){ ShowPerson(*it); } // use for_each to use ShowPerson() for_each(people.begin(), people.end(), ShowPerson); return EXIT_SUCCESS; } bool FillPerson(Person &pp){ string str; bool flag = true; cout << "Enter a name (or quit to stop) -> "; getline(cin,str); if(str != "quit"){ pp.name = str; cout << "Enter this person's age -> "; cin >> pp.age; cin.get(); }else{ flag = false; } return flag; } void ShowPerson(const Person &pp){ cout << pp.name << " is " << pp.age << " years old.\n"; }