C++從文本文件讀取數(shù)據(jù)到vector中的方法
前言
大家應(yīng)該都只奧vector(向量)是 C++中的一種數(shù)據(jù)結(jié)構(gòu),確切的說是一個類。它相當(dāng)于一個動態(tài)的數(shù)組,當(dāng)程序員無法知道自己需要的數(shù)組的規(guī)模多大時,用其來解決問題可以達(dá)到最大節(jié)約空間的目的。這篇文章介紹的是C++從文本文件讀取數(shù)據(jù)到vector中的方法,下面話不多說,直接來看示例代碼吧。
如題,要將如下文本文件讀進(jìn)vector中

示例代碼如下
#include <iostream>
using namespace std;
#include <cmath>
#include <vector>
#include <fstream>
//將文本文件中得數(shù)據(jù)讀入vector中,并返回一個vector。
vector<int> *InputData_To_Vector()
{
vector<int> *p = new vector<int>;
ifstream infile("/Users/……/inputdata.txt");
int number;
while(! infile.eof())
{
infile >> number;
p->push_back(number);
}
p->pop_back(); //此處要將最后一個數(shù)字彈出,是因為上述循環(huán)將最后一個數(shù)字讀取了兩次
return p;
}
inline int Num_Square(int n)
{
return n*n;
}
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;
}
//調(diào)用傳入的vector
int main(int argc, const char * argv[]) {
// insert code here...
vector<int> *file_to_vector = InputData_To_Vector();
cout<<"sum2="<<Sum_Of_Num_Square(file_to_vector)<<endl;
return 0;
}
如此,便實現(xiàn)了將文本文件數(shù)據(jù)讀入vector中,相比讀入數(shù)組而言,避免了因?qū)ξ谋疚募?shù)據(jù)量未知而不知開多大內(nèi)存的問題。當(dāng)然,當(dāng)數(shù)據(jù)量過于龐大時,要另當(dāng)別論。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
相關(guān)文章
C語言實現(xiàn)進(jìn)制轉(zhuǎn)換函數(shù)的實例詳解
這篇文章主要介紹了C語言實現(xiàn)進(jìn)制轉(zhuǎn)換函數(shù)的實例詳解的相關(guān)資料,這里提供實現(xiàn)實例幫助大家實現(xiàn)改功能,需要的朋友可以參考下2017-08-08
matlab遺傳算法求解車間調(diào)度問題分析及實現(xiàn)源碼
這篇文章主要為大家介紹了matlab遺傳算法求解車間調(diào)度問題解析,文中附含詳細(xì)實現(xiàn)源碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助2022-02-02
C++實現(xiàn)LeetCode(13.羅馬數(shù)字轉(zhuǎn)化成整數(shù))
這篇文章主要介紹了C++實現(xiàn)LeetCode(13.羅馬數(shù)字轉(zhuǎn)化成整數(shù)),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07
淺析C/C++ 中return *this和return this的區(qū)別
return *this返回的是當(dāng)前對象的克隆或者本身,return this返回當(dāng)前對象的地址,下面通過本文給大家介紹C/C++ 中return *this和return this的區(qū)別,感興趣的朋友一起看看吧2019-10-10

