2015级C++第14周程序阅读 STL中的简单容器和迭代器

阅读并运行程序,解释程序执行得到的结果

(1)

#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;
}

(2)

#include <iostream>
#include <vector>
using namespace std;
int main()
{
    vector<int> intList;
    vector<int>::iterator listIt;
    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(listIt=intList.begin(); listIt != intList.end(); ++listIt)
        cout<<*listIt<<"    ";
    cout<<endl;
    listIt=intList.begin();
    ++listIt;
    ++listIt;
    intList.insert(listIt,8);
    cout<<"Line 3: List Elements: ";
    for(listIt = intList.begin(); listIt != intList.end(); ++listIt)
        cout<<*listIt<<"    ";
    cout<<endl;
    return 0;
}

(3)

#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;
}
时间: 2024-09-17 03:35:08

2015级C++第14周程序阅读 STL中的简单容器和迭代器的相关文章

2013级C++第14周程序阅读

课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759 1.阅读下面筛法求素数的程序,理解其算法.代码请从CSDN博客的课程主页上下载.如果对运行结果和其背后的原理仍不理解,请通过单步执行的手段跟踪理解,学会观察数组在运行过程中的变化. #include <iostream> #include <iomanip> using namespace std; int main() { const int M=200;

2015级C++第16周程序阅读 文件操作

1.请写出下面程序的输出结果 (1) #include <iostream> #include <fstream> using namespace std; int main() { fstream outfile,infile; outfile.open("data.dat",ios::out); outfile<<"1111111111"<<endl; outfile<<"aaaaaaaaaa

2015级C++第9周程序阅读 类和指针

阅读程序,写出程序的运行结果并理解其运行机制. (1) #include <iostream> using namespace std; class A { public: A(){cout<<"A";} ~A(){cout<<"~A";} }; class B { A *p; public: B() { cout<<"B"; p=new A(); } ~B() { cout<<&quo

2013级C++第12周程序阅读项目——理解函数

课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759 第一部分 重重重要的技能:掌握单步执行,跟踪观察执行中变量的变化 阅读http://blog.csdn.net/sxhelijian/article/details/15026159中<CodeBlocks调试功能快捷教程>,通过运行示例,掌握CodeBlocks中调试功能. 今后在调试程序时,尽可能利用好调试功能,这是职业的要求. 第二部分 阅读代码,理解函数的用法

2015级C++第14周实践项目 模板

[项目1-排序函数模板] 已知 void Sort(int a[],int size); void Sort(double a[],int size); 是一个函数模板的两个实例,其功能是将数组a中的前size个元素按从小到大顺序排列.试设计这个函数模板. [项目2-两个成员的类模板] 设有如下的类声明: class Test{ public: void SetData1(int val) { data1=val; } void SetData2(double val) {data2=val:

2015级C++第10、11周程序阅读 继承和派生

阅读程序,请写出这些程序的运行结果 (1)阅读程序,写出执行结果 #include <iostream> using namespace std; class Data { public: Data(int i):x(i){cout<<"A";} ~Data(){ cout<<"B";} private: int x; }; class Base { public: Base(int i):b1(i){cout<<&q

2015级C++第10、11周程序阅读(补充) 继承和派生

(1) #include<iostream> using namespace std; class G { public: static int m; G( ){ //构造函数 m++; cout<<"G begins\n"; } ~G( ) { cout<<"G ends\n"; m--; } }; int G::m=0; class D:public G { public: D( ){ //构造函数 m++; cout<

2015级C++第7周项目 友元、共享数据保护、多文件结构

[项目1-成员函数.友元函数和一般函数有区别]参考解答 (1)阅读下面的程序,体会注释中的说明(要运行程序,请找到课程主页并复制代码) //例:使用成员函数.友元函数和一般函数的区别 #include <iostream> using namespace std; class Time { public: Time(int h,int m,int s):hour(h),minute(m),sec(s) {} void display1(); //display1是成员函数 friend voi

2013级C++第14周项目——一维数组、字符数组

课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759 [项目1 - 数组大折腾] 将所有元素值加倍后保存在数组中,最后由前往后输出数组中所有元素的值,再由后往前输出数组中所有元素的值,再输出数组中的所有大于100的数,以及下标为3的倍数的元素值. (1)创建一个长度为20的整型数组,通过初始化,为数组中的前10个元素赋初值,然后通过键盘输入后10个元素的值,从前往后(从第0个到第19个)输出数组中元素的值,每5个元素换一行.