小应用--如何从一堆数字中选择出与10的倍数最接近的一些数
2016-03-27 09:43
351 查看
一基友要对实验数据进行处理,每次大概7000条数据吧,然后从里面没十秒选出一行数据。
所以,就帮他写了一个简单的代码。
1读数据
即我们常用的读文件,为了简单,就读txt文件吧。然后把读到的数据存入vector:
这里没什么好说的:
i 头文件fstream
ii 不要忘了调用close
2查找
接下来就是如何找出与10的倍数最接近的一些数。
i 先找出最大数,也就是看看最大的数是10的多少倍,即上限。
ii 通过for循环,把查找结果存入result_vector中
3写数据
最后就是把result_vector存入到txt中了:
4未完待续
其实数据源是存在excel中的,可以直接读取excel。
然后在excel中执行响应的语句,筛选出想要的结果。
所以,就帮他写了一个简单的代码。
1读数据
即我们常用的读文件,为了简单,就读txt文件吧。然后把读到的数据存入vector:
ifstream infile; //infile是一个文件流,因此其实还是对流进行的操作 infile.open("./data.txt"); vector<double> data_vector; //用来保存文本中数据的向量 double temp; if (infile.is_open()) //判断文件流是否处于打开状态 { while (infile.good() && !infile.eof()) { infile >> temp; data_vector.push_back(temp); //将数据读入到data_vector } } infile.close();
这里没什么好说的:
i 头文件fstream
ii 不要忘了调用close
2查找
接下来就是如何找出与10的倍数最接近的一些数。
i 先找出最大数,也就是看看最大的数是10的多少倍,即上限。
int n = *std::max_element(data_vector.begin(), data_vector.end())/10;
ii 通过for循环,把查找结果存入result_vector中
vector<double> result_vector; for (int k = 1; k <= n; k++) { for (int i = 0, j = 1; j < data_vector.size(); i++, j++) { if (std::abs(data_vector[i] - 10 * k) > std::abs(data_vector[j] - 10 * k)) { sub_temp = data_vector[j]; } } result_vector.push_back(sub_temp); sub_temp = 0; }
3写数据
最后就是把result_vector存入到txt中了:
ofstream outfile; outfile.open("./result.txt"); //打开输出文件 std::string message; for (int i = 0; i < result_vector.size(); i++) { for (auto iter = data_vector.begin(); iter != data_vector.end(); iter++) { if (result_vector[i] == *iter) { int temp = iter - data_vector.begin() + 1; message.append(std::to_string(temp)); message.append(" "); } } } outfile << message; outfile.close();
4未完待续
其实数据源是存在excel中的,可以直接读取excel。
然后在excel中执行响应的语句,筛选出想要的结果。
相关文章推荐
- 查找文本文件中的关键字
- android中无法在华为手机输出Log.v和Log.d级别的日志问题总结
- MyEclipse快捷键大全
- Windows Update要大变!加入active hours(活跃时间)的设定
- 【phpcms-v9】category.php文件分析-添加栏目
- MinerUrl.java 解析页面后存储URL类
- MinerUrl.java 解析页面后存储URL类
- Java 回顾笔记_set集合
- Mybatis多参数传递三种解决方案
- hdoj-1048-The Hardest Problem Ever
- 扣丁学堂笔记第11天广播接收器、短信与闹钟服务
- 【phpcms-v9】content_form.calss.php文件分析-内容添加页面动态表单的生成原理
- go语言捕获panic异常并转化为error
- 栈的链式存储结构及其基本运算的实现
- google在线測试练习题1
- 让loadrunner走下神坛(全)
- 企业网络中广域网出口介绍及业务办理 推荐
- 【phpcms-v9】前台模板文件中{pc}标签的执行流程
- linux 下的策略路由
- The effect of opinion clustering on disease outbreaeks