Vector模板常见操作
2012-03-18 09:03
337 查看
#include <iostream>#include <string>#include <vector>struct Review{ std::string title; int rating;};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) //rating输入的是非数字时返回false return false; std::cin.get(); //接收换行符 return true;}void ShowReview(const Review &rr){ std::cout<<rr.rating<<"\t"<<rr.title<<std::endl;}int main(){ using std::cout; using std::vector; vector<Review> books;//vector模板使用动态内存分配 Review temp; while(FillReview(temp)) books.push_back(temp);//将元素添加到矢量尾 int num = books.size();//返回books的大小 if(num>0) { cout<<"Thank you. You entered the following:\n" <<"Rating\tBooks\n"; vector<Review>::iterator pr;//为vector的Review类型规范声明一个迭代器(指针),作用域为整个类 for(pr=books.begin();pr != books.end();pr++)/*begin()返回books[o]的地址,end()返回最后一个元素后面的那个 元素的地址*/ ShowReview(*pr); vector<Review> oldlist(books); if(num>3) { //Remove two items books.erase(books.begin()+1,books.begin()+3);/*erase()删除矢量中给定区间的元素,这里删除的是元素books[1]和books[2] ,注意范围*/ cout<<"After erasure:\n"; for(pr=books.begin();pr != books.end();pr++) ShowReview(*pr); //insert 1 item books.insert(books.begin(),oldlist.begin()+1,oldlist.begin()+2);//insert()功能和erase()相反 cout<<"After insertion:\n"; for(pr=books.begin();pr != books.end();pr++) ShowReview(*pr); } books.swap(oldlist);//交换两个容器类 cout<<"Swapping oldlist with books:\n"; for(pr=books.begin();pr != books.end();pr++) ShowReview(*pr); } else cout<<"Nothing entered,nothing gained.\n"; return 0;}
相关文章推荐
- Vector模板常见操作
- c++ vector的几个常见操作的用法测试
- opencv笔记4:模板运算和常见滤波操作
- 路径,文件,目录,I/O常见操作汇总(一)
- 再回首,数据结构——链栈上的常见操作
- java selenium 常见web UI 元素操作及API使用
- string 与 vector及容器操作的异同
- ubuntu12.04的一些常见操作,你懂吗?
- C++/STL_中vector基本操作测试代码,vector.erase()使用方法
- JavaScript 字符串操作的几种常见方法
- C语言单链表常见操作系列
- Python 对字符元素操作的常见函数
- Python对数据shape的常见操作总结
- yii2 GridView常见操作
- Hadoop常见shell操作
- Git常见操作和常见错误!错误提示:fatal: remote origin already exists.
- 基于模板参数的友元重载opearto<<常见问题
- 常见的异步实现方法以及ES7中如何通过async实现异步操作
- oracle常见错误及操作
- Java中日期的几种常见操作 —— 取值、转换、加减、比较