Accelerated C++ Exercise 5-2(list版本)
2013-11-17 14:48
211 查看
#include <algorithm> #include <list> #include <iostream> #include <fstream> #include <string> #include <ctime> #include "Student_info.h" #include "grade.h" //driver program for grade partitioning examples using std::cin; using std::cout; using std::endl; using std::sort; using std::string; using std::list; using std::max; using std::ifstream; using std::ofstream; list<Student_info> extract_fails(list<Student_info>& students) { list<Student_info> fail; #ifdef _MSC_VER std::list<Student_info>::iterator iter = students.begin(); #else list<Student_info>::iterator iter = students.begin(); #endif while (iter != students.end()) { if (fgrade(*iter)) { fail.push_back(*iter); iter = students.erase(iter); } else ++iter; } return fail; } int main() { list<Student_info> vs; Student_info s; string::size_type maxlen = 0; ifstream infile; //infile.open("100.txt"); // <vector>Elapsed:10 <list>Elapsed:3 //infile.open("1000.txt"); // <vector>Elapsed:751 <list>Elapsed:35 infile.open("10000.txt"); // <vector>Elapsed:69599 <list>Elapsed:326 if(!infile.is_open()){ cout<<"不可以打开文件"<<std::endl; system("pause"); exit(1); } while (read(infile, s)) { maxlen = max(maxlen, s.name.size()); vs.push_back(s); } vs.sort(compare); clock_t start = clock(); list<Student_info> fails = extract_fails(vs); //list<Student_info>::iterator i; //for (i = fails.begin(); i != fails.end(); ++i) // cout << i->name << " " << grade(*i) << endl<<endl; clock_t elapsed = clock() - start; cout << "Elapsed: " << elapsed << endl; // for (int i = 0; i < fails.size(); ++i) // cout << fails[i].name << " " << grade(fails[i]) << endl; system("pause"); return 0; }
相关文章推荐
- Accelerated C++ Exercise 4-2
- Accelerated C++ Exercise 7-2
- Accelerated C++ Exercise 7-5
- Accelerated C++ Exercise 5-6
- Accelerated C++ Exercise 11-0(自定义VECTOR模板)
- Accelerated C++ Exercise 10-0
- Accelerated C++ Exercise 4-1
- Accelerated C++ Exercise 10-2,3
- Accelerated C++ Exercise 4-5
- Accelerated C++ Exercise 5-0(split)
- Accelerated C++ Exercise 5-3(5-4)
- Accelerated C++ Exercise 7-0(2)
- Accelerated C++ Exercise 5-0(frame)
- Accelerated C++ Exercise 5-9
- Accelerated C++ Exercise 7-1
- ACCELERATED C++ SOLUTION TO EXERCISE 3-2
- Accelerated C++ Exercise 10-0(main函数参数)
- Accelerated C++ Exercise 5-10(回文数)
- Accelerated C++ Exercise 7-3
- leetcode之92. Reverse Linked List II(C++读错题版本,交换一个链表中指定的两个位置上的元素)