⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 enrollment.cpp

📁 C++高级编程这本书所附的源代码
💻 CPP
字号:
#include <list>#include <vector>#include <string>#include <algorithm>#include <iterator>#include <fstream>#include <iostream>#include <sstream>using namespace std;//// classLists is a vector of lists, one for each course. The lists// contain the students enrolled in those courses. They are not sorted.//// droppedStudents is a list of students who failed to pay their// tuition, so are dropped from their courses.//// The function returns a list of every enrolled (non-dropped) student in// all the courses//list<string>getTotalEnrollment(const vector<list<string> >& classLists,		   const list<string>& droppedStudents){  list<string> allStudents;  // Concatenate all the course lists onto the master list  for (size_t i = 0; i < classLists.size(); ++i) {    allStudents.insert(allStudents.end(), classLists[i].begin(),		       classLists[i].end());  }  // Sort the master list  allStudents.sort();  // Remove duplicate student names (those who are in multiple courses).  allStudents.unique();  //  // Remove students who are on the dropped list.  // Iterate through the drop list, calling remove on the  // master list for each student in the dropped list.  //  for (list<string>::const_iterator it = droppedStudents.begin();       it != droppedStudents.end(); ++it) {    allStudents.remove(*it);  }  // done!  return (allStudents);}void readStudentList(list<string> &students, ifstream &istr){  string name;  while (getline(istr, name)) {    cout << "Read name " << name << endl;    students.push_back(name);  }}void readCourseLists(vector<list<string> > &lists){  for(int i = 1; ; i++) {    ostringstream ostr;    ostr << "course" << i << ".txt";    ifstream istr(ostr.str().c_str());    if (!istr) {      cout << "Failed to open " << ostr.str() << endl;      break;    }    list<string> newList;    readStudentList(newList, istr);    lists.push_back(newList);  }}void readDroppedStudents(list<string> &students){  ifstream istr("dropped.txt");  readStudentList(students, istr);}int main(int argc, char **argv){  vector<list<string> > courseLists;  list<string> droppedStudents;  readCourseLists(courseLists);  readDroppedStudents(droppedStudents);  list<string> finalList = getTotalEnrollment(courseLists, droppedStudents);  copy(finalList.begin(), finalList.end(), ostream_iterator<string>(cout, "\n"));}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -