C++從文本文件讀取數(shù)據(jù)到vector中的方法
前言
大家應(yīng)該都只奧vector(向量)是 C++中的一種數(shù)據(jù)結(jié)構(gòu),確切的說是一個(gè)類。它相當(dāng)于一個(gè)動(dòng)態(tài)的數(shù)組,當(dāng)程序員無法知道自己需要的數(shù)組的規(guī)模多大時(shí),用其來解決問題可以達(dá)到最大節(jié)約空間的目的。這篇文章介紹的是C++從文本文件讀取數(shù)據(jù)到vector中的方法,下面話不多說,直接來看示例代碼吧。
如題,要將如下文本文件讀進(jìn)vector中
示例代碼如下
#include <iostream> using namespace std; #include <cmath> #include <vector> #include <fstream> //將文本文件中得數(shù)據(jù)讀入vector中,并返回一個(gè)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(); //此處要將最后一個(gè)數(shù)字彈出,是因?yàn)樯鲜鲅h(huán)將最后一個(gè)數(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; }
如此,便實(shí)現(xiàn)了將文本文件數(shù)據(jù)讀入vector中,相比讀入數(shù)組而言,避免了因?qū)ξ谋疚募?shù)據(jù)量未知而不知開多大內(nèi)存的問題。當(dāng)然,當(dāng)數(shù)據(jù)量過于龐大時(shí),要另當(dāng)別論。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
相關(guān)文章
C++利用函數(shù)動(dòng)態(tài)創(chuàng)建二維數(shù)組
這篇文章主要為大家詳細(xì)介紹了C++利用函數(shù)動(dòng)態(tài)創(chuàng)建二維數(shù)組,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09cmake添加一個(gè)庫的實(shí)現(xiàn)步驟
本文主要介紹了cmake添加一個(gè)庫的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06C++利用靜態(tài)成員或類模板構(gòu)建鏈表的方法講解
這篇文章主要介紹了C++利用靜態(tài)成員或類模板構(gòu)建鏈表的方法講解,鏈表是基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu),而在C++中構(gòu)件單鏈表還是稍顯復(fù)雜,需要的朋友可以參考下2016-04-04C++?高精度乘法運(yùn)算的實(shí)現(xiàn)
本文主要介紹了C++?高精度乘法運(yùn)算的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01淺析VSCode launch.json中的各種替換變量的意思 ${workspaceFolder} ${file} $
這篇文章主要介紹了VSCode launch.json中的各種替換變量的意思 ${workspaceFolder} ${file} ${fileBasename} ${fileDirname}等,非常不錯(cuò)具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03C++?Boost?Accumulators累加器詳細(xì)講解
Boost是為C++語言標(biāo)準(zhǔn)庫提供擴(kuò)展的一些C++程序庫的總稱。Boost庫是一個(gè)可移植、提供源代碼的C++庫,作為標(biāo)準(zhǔn)庫的后備,是C++標(biāo)準(zhǔn)化進(jìn)程的開發(fā)引擎之一,是為C++語言標(biāo)準(zhǔn)庫提供擴(kuò)展的一些C++程序庫的總稱2022-11-11