C++從文本文件讀取數(shù)據(jù)到vector中的方法
前言
大家應(yīng)該都只奧vector(向量)是 C++中的一種數(shù)據(jù)結(jié)構(gòu),確切的說(shuō)是一個(gè)類。它相當(dāng)于一個(gè)動(dòng)態(tài)的數(shù)組,當(dāng)程序員無(wú)法知道自己需要的數(shù)組的規(guī)模多大時(shí),用其來(lái)解決問(wèn)題可以達(dá)到最大節(jié)約空間的目的。這篇文章介紹的是C++從文本文件讀取數(shù)據(jù)到vector中的方法,下面話不多說(shuō),直接來(lái)看示例代碼吧。
如題,要將如下文本文件讀進(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ù)量未知而不知開(kāi)多大內(nèi)存的問(wèn)題。當(dāng)然,當(dāng)數(shù)據(jù)量過(guò)于龐大時(shí),要另當(dāng)別論。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流。
相關(guān)文章
C語(yǔ)言實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換函數(shù)的實(shí)例詳解
這篇文章主要介紹了C語(yǔ)言實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換函數(shù)的實(shí)例詳解的相關(guān)資料,這里提供實(shí)現(xiàn)實(shí)例幫助大家實(shí)現(xiàn)改功能,需要的朋友可以參考下2017-08-08
matlab遺傳算法求解車間調(diào)度問(wèn)題分析及實(shí)現(xiàn)源碼
這篇文章主要為大家介紹了matlab遺傳算法求解車間調(diào)度問(wèn)題解析,文中附含詳細(xì)實(shí)現(xiàn)源碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助2022-02-02
C++實(shí)現(xiàn)LeetCode(13.羅馬數(shù)字轉(zhuǎn)化成整數(shù))
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(13.羅馬數(shù)字轉(zhuǎn)化成整數(shù)),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07
C++ OpenCV實(shí)戰(zhàn)之形狀識(shí)別
本案例通過(guò)使用OpenCV中的approxPolyDP進(jìn)行多邊形近似,進(jìn)而進(jìn)行基礎(chǔ)形狀識(shí)別(圓、三角形、矩形、星形…),快跟隨小編一起動(dòng)手嘗試一下2022-07-07
淺析C/C++ 中return *this和return this的區(qū)別
return *this返回的是當(dāng)前對(duì)象的克隆或者本身,return this返回當(dāng)前對(duì)象的地址,下面通過(guò)本文給大家介紹C/C++ 中return *this和return this的區(qū)別,感興趣的朋友一起看看吧2019-10-10

