关闭

第十四周实践项目-阅读并运行程序,解释程序执行得到的结果(2)

253人阅读 评论(0) 收藏 举报

问题及代码:

/*
 *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、再次输出便得到了第三行的结果。


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:33340次
    • 积分:1619
    • 等级:
    • 排名:千里之外
    • 原创:135篇
    • 转载:0篇
    • 译文:0篇
    • 评论:3条
    最新评论