为了不用把数据存到一个特定对象,C++提供了一个强大而且实用的工具:标准容器(container)类。最基本的标准容器:“vector”非常有用。vector类是一个模板(template),也就是说它可有效地用于不用的类型。
#include <string>
#include <fstream>
#include <iostream>
#include <vector>
using namespace std;
int main(int argc, char* argv[])
{
vector<string> v;
ifstream in ("FirstMain.cpp");
string s;
while(getline(in,s))
v.push_back(s);
v.insert(v.begin()+4,"-----before those are lib---------看");
for(int i=0;i<v.size();i++)
cout<<i<<":"<<v[i]<<endl;
}
#include <string>
#include <fstream>
#include <iostream>
#include <vector>
using namespace std;
int main(int argc, char* argv[])
{
vector<string> words;
ifstream in ("FirstMain.cpp");
string word;
while(in>>word)//意思是每次取输入的一个单词,当表达式的值为“false”时,就意味着文件读完了。
words.push_back(word);
words.insert(words.begin()+4,"-----before those are lib---------看");
for(int i=0;i<words.size();i++)
cout<<i<<":"<<words[i]<<endl;
}
这个例子是把输入分解成由空格分隔的单词而不是一行。
#include <string>
#include <fstream>
#include <iostream>
#include <vector>
using namespace std;
int main(int argc, char* argv[])
{
vector<int> v;
for(int i=0;i<10;i++)
v.push_back(i);
for(int i=0;i<v.size();i++)
cout<<v[i]<<","<<endl;
for(int i=0;i<10;i++)
v[i]=v[i]*10;
for(int i=0;i<v.size();i++)
cout<<v[i]<<",";
cout<<endl;
}