从整数向量中提取连续范围
我已经像这样 [1,2,3,6,7,8,12,15] 对向量(具有非重复值)进行了排序
我需要从像 1-3,6-8,12-15 这样的向量中提取每个范围到像这样的字符串:
"0-3,6-8,12,15"
从整数向量中提取连续范围
我已经像这样 [1,2,3,6,7,8,12,15] 对向量(具有非重复值)进行了排序
我需要从像 1-3,6-8,12-15 这样的向量中提取每个范围到像这样的字符串:
"0-3,6-8,12,15"
我最近煮了这段代码。它从文件中读取,而不是输出到文件的字符串。我相信你可以修改它以满足你的需要。
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
using namespace std;
template <typename T>
inline T convert(string &s)
{
T out;
istringstream ss(s);
ss >> out;
return out;
}
int main()
{
ifstream infile("input.txt");
ofstream outfile("output.txt");
string cur_line, last_line;
int cur, last;
if (infile.good()) {
getline(infile, cur_line);
cur = convert<int>(cur_line);
outfile << cur_line << ',';
last = cur;
}
while(getline(infile, cur_line))
{
cur = convert<int>(cur_line);
if (cur != last + 1) {
outfile << last_line << '\n';
outfile << cur_line << ',';
}
last = cur;
last_line = cur_line;
}
outfile << last_line;
infile.close();
outfile.close();
return 0;
}