问题及代码:
/*
*Copyright(c)2016,烟台大学计算机与控制工程学院
*All right reserved.
*文件名称:77.cpp
*作 者:董凯琦
*完成日期:2016年6月1日
*版 本 号:v1.0
*
*问题描述:
阅读并运行程序,解释程序执行得到的结果
*输入描述:
*程序输出:
*/
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int>intList;
vector<int>::iterator listlt;
int i;
intList.push_back(1);
intList.push_back(5);
intList.push_back(10);
intList.push_back(15);
cout<<"Line 1:List Elements:";
for(i=0;i<4;i++)
cout<<intList[i]<<" ";
cout<<endl;
for(i=0;i<4;i++)
intList[i]*=2;
cout<<"Line 2:List Elements:";
for(listlt=intList.begin();listlt!=intList.end();++listlt)
cout<<*listlt<<" ";
cout<<endl;
listlt=intList.begin();
++listlt;
++listlt;
intList.insert(listlt,8);
cout<<"Line 3:List Elements:";
for(listlt=intList.begin();listlt!=intList.end();++listlt)
cout<<*listlt<<" ";
cout<<endl;
return 0;
}
运行结果:
程序分析:
1、 intList.push_back(1);
intList.push_back(5);
intList.push_back(10);
intList.push_back(15);
cout<<"Line 1:List Elements:";
for(i=0;i<4;i++)
cout<<intList[i]<<" ";
cout<<endl;
由这段程序可知,程序先依次输出插入的这四个数字(依次往后插入)得到第一行的结果。
2、for(i=0;i<4;i++)
intList[i]*=2;
cout<<"Line 2:List Elements:";
for(listlt=intList.begin();listlt!=intList.end();++listlt)
cout<<*listlt<<" ";
由这段程序可知,将动态数组内的四个数字分别乘以2,再依次输出得到第二行的结果。
3、在输出完这两行结果时,执行listlt=intList.begin();将迭代器指向动态数组的起始位置,然后进行 ++listlt;
++listlt;两次移动,将迭代器的指向向后移动了两个位置,此时指向20.
4、 intList.insert(listlt,8);在20的位置上插入8,则20向后移动了一个位置。
5、再次输出便得到了第三行的结果。