P678-vect2.cpp

// CH1608.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <string>
#include <vector>
#include <iostream>
using namespace std;

struct Review{
	std::string title;
	int rating;
};

bool FillReview(Review &rr);  //输入Review对象
void ShowReview(const Review &rr);  //输出Review对象

int _tmain(int argc, _TCHAR* argv[])
{
    vector<Review> books;
	Review temp;
	while( FillReview(temp) )
		books.push_back(temp);
	int num=books.size();
	if(num>0)
	{
	    cout<<"Thank you ,you entered the following:\n"
			   <<"Rating\tBook\n";
		for(int i=0;i<num;i++)
		{
		     ShowReview(books[i]);
		}

		cout<<"Reprising:\n"
			   <<"Rating\tBook\n";
		vector<Review>::iterator pr;
		for(pr=books.begin();pr!=books.end();pr++)
			ShowReview(*pr);
		vector <Review>oldlist(books); //copy constructor used
		if(num>3)
		{
		    //remove 2 items  移除两项
			books.erase(books.begin()+1,books.begin()+3);
			cout<<"After erasure:\n";
		    for(pr=books.begin();pr!=books.end();pr++)
			    ShowReview(*pr);
			//insert 1 items插入一项数据
			books.insert(books.begin(),oldlist.begin()+1,oldlist.begin()+2);
			cout<<"After insert:\n";
            for(pr=books.begin();pr!=books.end();pr++)
			    ShowReview(*pr);		
		}
		books.swap(oldlist);  //交换两个容器的内容
		cout<<"swapping oldlist with boos:\n";
		for(pr=books.begin();pr!=books.end();pr++)
		{
		    ShowReview(*pr);
		}


	}//end if(num>0)
	else
	{
	    cout<<"Nothing entered,nothing gained.\n";
	}
	return 0;
}
bool FillReview(Review & rr)
{
    cout<<"Enter book title(quit to quit):";
	getline(cin,rr.title);
	if(rr.title == "quit")
	{
	    return false;
	}
	cout<<"Enter book rating:";
	cin>>rr.rating;
	if(!cin)
	{
	    return false;
	}
	while(cin.get() != '\n')
		continue;
	return true;
}
void ShowReview(const Review &rr)
{
	cout<<rr.rating<<"\t"<<rr.title<<endl;
}

运行效果如下

posted @   尚修能的技术博客  阅读(372)  评论(0编辑  收藏  举报
编辑推荐:
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
阅读排行:
· 《HelloGitHub》第 108 期
· Windows桌面应用自动更新解决方案SharpUpdater5发布
· 我的家庭实验室服务器集群硬件清单
· Supergateway:MCP服务器的远程调试与集成工具
· C# 13 中的新增功能实操
点击右上角即可分享
微信分享提示