阅读程序,分析结果 (3)

*Copyright(c) 2016.烟台大学计算机与控制工程学院
*ALL rights  reserved.
*文件名称:main.cpp
*作者:孙亚茹
*完成日期:2016年6月9日
*问题描述:阅读程序,解释执行结果。
*//

 

#include <iterator>
#include <list>
#include <algorithm>
#include <iostream>
using namespace std;
int main()
{
    int ia[5] = {1,2,3,4};
    list<int> id(ia, ia+4);
    ostream_iterator<int> outite(cout, " ");
    copy(id.begin(), id.end(), outite);
    cout << endl;
    copy(ia+1, ia+2, front_inserter(id));
    copy(id.begin(), id.end(), outite);
    cout << endl;
    copy(ia+3, ia+4, back_inserter(id));
    copy(id.begin(), id.end(), outite);
    cout << endl;
    list<int>::iterator ite = find(id.begin(), id.end(), 3);
    copy(ia+0, ia+2, inserter(id, ite));
    copy(id.begin(), id.end(), outite);
    cout << endl;
    copy(id.rbegin(), id.rend(), outite);
    cout << endl;
    return 0;
}


程序分析:

                 由list<int> id(ia, ia+4);知id里面的数是1 2 3 4,所以第一次输出为1 2 3 4.

                 copy(ia+1, ia+2, front_inserter(id));区间前闭后开,就是把2插入1234前面,结果为:2 1 2 3 4.

                 copy(ia+3, ia+4, back_inserter(id));是将4插在21234后面,结果为:2 1 2 3 4 4.

                 list<int>::iterator ite = find(id.begin(), id.end(), 3);找到位置3,copy(ia+0, ia+2, inserter(id, ite));将1 2插到3的前面,结果为:2 1 2 1 2 3 4 4.

                copy(id.begin(), id.end(), outite);倒序输出,结果为:4 4 3 2 1 2 1 2.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章