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++利用函數(shù)動態(tài)創(chuàng)建二維數(shù)組
這篇文章主要為大家詳細(xì)介紹了C++利用函數(shù)動態(tài)創(chuàng)建二維數(shù)組,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-09-09C++利用靜態(tài)成員或類模板構(gòu)建鏈表的方法講解
這篇文章主要介紹了C++利用靜態(tài)成員或類模板構(gòu)建鏈表的方法講解,鏈表是基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu),而在C++中構(gòu)件單鏈表還是稍顯復(fù)雜,需要的朋友可以參考下2016-04-04淺析VSCode launch.json中的各種替換變量的意思 ${workspaceFolder} ${file} $
這篇文章主要介紹了VSCode launch.json中的各種替換變量的意思 ${workspaceFolder} ${file} ${fileBasename} ${fileDirname}等,非常不錯具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03C++?Boost?Accumulators累加器詳細(xì)講解
Boost是為C++語言標(biāo)準(zhǔn)庫提供擴(kuò)展的一些C++程序庫的總稱。Boost庫是一個可移植、提供源代碼的C++庫,作為標(biāo)準(zhǔn)庫的后備,是C++標(biāo)準(zhǔn)化進(jìn)程的開發(fā)引擎之一,是為C++語言標(biāo)準(zhǔn)庫提供擴(kuò)展的一些C++程序庫的總稱2022-11-11