C++从文本文件读取数据到vector中的方法

在C++编程中,有时我们需要从文本文件读取数据并将其存储到容器中,例如`std::vector`。`std::vector`是一个动态大小的数组,它可以方便地扩展以适应不断变化的数据需求。本篇文章将详细讲解如何使用C++从文本文件读取整数数据并将其存入`std::vector<int>`。 我们需要包含必要的头文件: ```cpp #include <iostream> #include <fstream> #include <vector> ``` `<iostream>`提供了输入输出流操作,`<fstream>`则包含了读写文件的相关操作,而`<vector>`是`std::vector`的定义。 接下来,我们定义一个名为`InputData_To_Vector`的函数,该函数负责从文本文件中读取数据并填充`std::vector<int>`: ```cpp vector<int> *InputData_To_Vector(){ vector<int> *p = new vector<int>; // 创建一个新的vector指针 ifstream infile("/Users/……/inputdata.txt"); // 打开文件,路径根据实际文件位置更改 int number; while(! infile.eof()) { // 使用eof()检查是否到达文件末尾 infile >> number; // 从文件读取一个整数 p->push_back(number); // 将读取的整数添加到vector的末尾 } p->pop_back(); // 移除最后一个元素,因为eof()在文件末尾后仍会读取一次,导致重复 return p; // 返回指向vector的指针 } ``` 在上述代码中,我们创建了一个`ifstream`对象`infile`来打开文件,然后在一个循环中读取整数并使用`push_back()`将其添加到`vector`中。由于`eof()`函数的特性,我们通常需要在循环结束后移除多读取的一个元素。 为了计算这些数值的平方和,我们还定义了一个`Num_Square`函数: ```cpp inline int Num_Square(int n){ return n*n; // 返回n的平方 } ``` 然后,我们编写一个名为`Sum_Of_Num_Square`的函数,接收`std::vector<int>`的指针,计算所有元素平方的和: ```cpp int Sum_Of_Num_Square(vector<int> *p){ int Sum2 = 0; vector<int>::iterator it; for(it=p->begin(); it!=p->end(); it++) { Sum2 += Num_Square(*it); // 将每个元素平方后累加 } return Sum2; } ``` 在主函数`main`中,我们调用这两个函数来完成整个流程: ```cpp int main(int argc, const char * argv[]) { vector<int> *file_to_vector = InputData_To_Vector(); // 读取文件数据到vector cout << "sum2=" << Sum_Of_Num_Square(file_to_vector) << endl; // 输出平方和 delete file_to_vector; // 不忘释放内存 return 0; } ``` 这个例子展示了如何灵活地使用`std::vector`处理从文本文件读取的数据,同时也体现了C++的动态内存管理。与预分配固定大小的数组相比,`std::vector`允许我们根据需要自动调整大小,从而更高效地处理未知数量的数据。然而,当文件数据量非常大时,使用`std::vector`可能会消耗大量内存,此时可能需要考虑其他数据结构或流式处理策略。了解如何从文件读取数据并将其存储在适当的数据结构中是C++编程中的重要技能。
























- 张博士-体态康复2023-07-27这篇文章介绍的方法真实可行,我成功地将文本文件中的数据读取到了vector中。
- 养生的控制人2023-07-27文章中的步骤清晰明了,让我能够轻松地理解并实践。
- 懂得越多越要学2023-07-27这篇文章的作者真的很了解读取文本文件的需求,他提供的解决方案非常适合我的项目。
- ali-122023-07-27这篇文章帮助我节省了大量的时间和精力,非常感谢作者的分享!
- wxb0cf756a5ebe75e92023-07-27方法虽然简单,但却非常实用!我特别喜欢这样直接有效的技巧。

- 粉丝: 1
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- CAD基础基本实用培训ppt课件.ppt
- NCBI数据库的使用与功能介绍.ppt
- 2023年实验七面向对象的程序设计资料.doc
- 2023年企业战略管理网络型考操作步骤.doc
- 安全质量系统安全信息.pptx
- 电力监控系统安全防护总体方案.doc
- 2023年基于网络考核课程统计法基础知识试题题库答案.doc
- IBMCognos绩效管理方案建议书VDP.doc
- 倍数因数知识网络图.doc
- IPC国家教育考试网上巡查系统技术方案网络摄像机方式.doc
- 电大《网络多媒体素材加工》2019-2020模拟试题及答案.docx
- 第5章面向对象的程序设计与实现.ppt
- 2023年计算机网络设计与实施项目竞赛方案.doc
- 单源最短路径-贪心算法(3页).doc
- 2023年软考系统架构设计师高级学习笔记.doc
- swift-Swift资源


