问题及代码:
#include<iostream>
#include<vector>
#include<iterator>
using namespace std;
int main()
{
vector<int> ivec;
int i;
for(i = 0; i < 5; i++ )
ivec.push_back(i);
for(i = 0; i < 5; i++)
cout<<ivec[i]<<" ";
cout<<endl;
while( !ivec.empty())
{
cout << ivec.back() << " ";
ivec.pop_back();
}
cout << endl;
for(i = 0; i < 5; i++)
cout<<ivec[i]<<" ";
cout<<endl;
copy(ivec.begin(),ivec.end(),ostream_iterator<int>(cout, " "));
cout<<endl;
cout << "size=" << ivec.size() << endl;
return 0;
}
运行结果:
程序分析:
//push_back是stl里面容器的方法,push_back(i)就是把相应的i添加到ivec数组里面。
//while( !ivec.empty())是ivec不是空字符串,否则跳出while 语句
//.back(),是获取最后一个元素的迭代器,可以理解为最后一个元素的指针
//.pop_back 删除vector里的最后一个元素
知识点扩充:
STL文件里的copy用法举例
//将数值复制到vector里,参数依次是开始、结束,vector数组的开始
copy (myints, myints+7, myvector.begin() );
//将数值复制到输出流中,参数依次是开始、结束,输出流
copy(myvector.begin(), myvector.end(), ostream_iterator<int>(cout, " "));