【发布时间】:2016-03-01 06:11:43
【问题描述】:
背景:一般目标将两个排序后的文件用空格分隔,并将它们放在一个排序后的文件中。
当前目标,看看我是否可以使用合并函数或类似函数来组合两个排序的向量。
我使用http://www.cplusplus.com/reference/algorithm/merge/ 来指导我使用合并功能。但是,我收到错误“没有对 'merge' 的匹配函数调用”。
我不确定合并函数是否真的会用字符串做我想要的,但我试图用它来看看它是否可以。
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm> // std::merge, std::sort
#include <string>
using namespace std;
ifstream r_data_file(const string oname)
{
ifstream ist {oname};
if (!ist) {
string error = "cannot open " + oname;
throw runtime_error(error);
}
return ist;
}
void get_words(ifstream& ist, vector<string>& Po)
{
for (string p; ist >> p;) {
Po.push_back(p);
}
}
int main ()
{
vector<string> file1;
vector<string> file2;
ifstream ist = r_data_file("wordlist_1.txt");
get_words(ist, file1);
ifstream ist_2 = r_data_file("wordlist_2.txt");
get_words(ist_2, file2);
vector<string> file_1n2(file1.size()+file2.size());
merge(file1, file1.end(), file2, file2.end(), file_1n2);
}
我会很感激你的想法,干杯!
【问题讨论】:
-
std::merge的最后一个参数应该是一个迭代器,如file_1n2.begin()