学习vector 的size(),begin(),end(),push_back(),erase(),insert()的使用
// Example16_8vect2.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include#include #include struct Review { std::string title; int rating; }; bool FillReview(Review & rr); void ShowReview(const Review & rr); int main() { // std::cout << "Hello World!n"; using std::cout; using std::vector; vector books;//books 是一个vector,里面的元素类型是Review类型,Review是个结构体 Review temp; while (FillReview(temp)) books.push_back(temp);//将元素添加到vector的末尾 int num = books.size(); if (num > 0) { cout << "Thank you.You entered the following:n" << "RatingtBookn"; for (int i = 0; i < num; i++) ShowReview(books[i]); cout << "Reprising:n" << "RatingtBookn"; vector ::iterator pr; for (pr = books.begin(); pr != books.end(); pr++) ShowReview(*pr); vector oldlist(books);//使用了拷贝构造函数 if (num > 3) { //remove 2 items books.erase(books.begin() + 1, books.begin() + 3); cout << "After Erase:n"; for (pr = books.begin(); pr != books.end(); pr++) ShowReview(*pr); //insert 1 item:插入一个元素 books.insert(books.begin(), oldlist.begin() + 1, oldlist.begin() + 2);//在books的开头处添加oldlist 的第2个元素 cout << "After Insertion:n"; for (pr = books.begin(); pr != books.end(); pr++) ShowReview(*pr); } } else cout << "Nothing Entered,nothing gained.n"; return 0; } bool FillReview(Review & rr) { std::cout << "Enter book title (quit to quit):"; std::getline(std::cin,rr.title); if (rr.title == "quit") return false; std::cout << "Enter book rating: "; std::cin >> rr.rating; if (!std::cin) return false; //get rid of rest of input line while (std::cin.get() != 'n') continue; return true; } void ShowReview(const Review & rr) { std::cout << rr.rating << "t" << rr.title << std::endl; }



