C++ Primer(第五版) 17.1.1--17.1.2节练习

本文主要介绍了C++ Primer第五版中第17章的内容,涉及17.1到17.8节,重点讨论了如何使用tuple和pair实现不同功能,包括简单的操作和在复杂搜索结果中的应用。同时指出,对于更复杂的搜索结果处理,定义自定义类进行封装更为合适。此外,提到了Sales_data类的默认构造函数及其对isbn字段的处理。
摘要由CSDN通过智能技术生成

17.1    

tuple<int, int, int> ti(10,, 20, 30);

17.2  

tuple<string, vector<string>, pair<string, int>> t;

17.3    使用tuple实现:

#ifndef	TEXTQUERY_H
#define	TEXTQUERY_H

#include <iostream>
#include <fstream>
#include <sstream>
#include <vector>
#include <memory>
#include <map>
#include <set>
#include <string>
#include <tuple>

using namespace std;

typedef vector<string>::size_type line_no;
typedef tuple<string, shared_ptr<set<line_no>>, shared_ptr<vector<string>>> QueryResult;

ostream &print(ostream &os, const QueryResult &qr);

class TextQuery {
public:
	TextQuery(ifstream&);
	QueryResult query(const string&) const;
private:
	shared_ptr<vector<string>> file;
	map<string, shared_ptr<set<line_no>>> wm;
};

TextQuery::TextQuery(ifstream &infile): file(make_shared<vector<string>>())
{
	string line;
	string word;
	line_no index = 0;
	
	while (getline(infile, line)) {
		file->push_back(line);
		++index;
		istringstream strline(line);
		while (strline >> word) {
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值