首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在c++中从排序整数向量中获取连续范围

在c++中从排序整数向量中获取连续范围
EN

Stack Overflow用户
提问于 2012-07-26 04:31:11
回答 1查看 205关注 0票数 0

从整数向量中提取连续范围

我对向量进行了排序(不重复值),如1,2,3,6,7,8,12,15。

我需要提取从像1-3,6-8,12-15这样的向量到字符串(如:

"0-3,6-8,12,15"

EN

回答 1

Stack Overflow用户

发布于 2012-07-26 04:36:38

我最近做了这个代码。它从文件中读取,而不是将字符串输出到文件中。我相信你能修改它以适应你的需要。

代码语言:javascript
运行
复制
#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;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11662367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档