編程第六十五、六十六天

c++ list頭文件(1)

#include <iostream>
#include <list>
#include <numeric>
#include <algorithm>

using namespace std;

//創建一個list容器的實例LISTINT
typedef list<int> LISTINT;

//創建一個list容器的實例LISTCHAR
typedef list<char> LISTCHAR;

void main(void)
{
    //--------------------------
    //用list容器處理整型數據
    //--------------------------
    //用LISTINT創建一個名爲listOne的list對象
    LISTINT listOne;
    //聲明i爲迭代器
    LISTINT::iterator i;

    //從前面向listOne容器中添加數據
    listOne.push_front (2);
    listOne.push_front (1);

    //從後面向listOne容器中添加數據
    listOne.push_back (3);
    listOne.push_back (4);

    //從前向後顯示listOne中的數據
    cout<<"listOne.begin()--- listOne.end():"<<endl;
    for (i = listOne.begin(); i != listOne.end(); ++i)
        cout << *i << " ";
    cout << endl;

    //從後向後顯示listOne中的數據
LISTINT::reverse_iterator ir;
    cout<<"listOne.rbegin()---listOne.rend():"<<endl;
    for (ir =listOne.rbegin(); ir!=listOne.rend();ir++) {
        cout << *ir << " ";
    }
    cout << endl;

    //使用STL的accumulate(累加)算法
    int result = accumulate(listOne.begin(), listOne.end(),0);
    cout<<"Sum="<<result<<endl;
    cout<<"------------------"<<endl;

    //--------------------------
    //用list容器處理字符型數據
    //--------------------------

    //用LISTCHAR創建一個名爲listOne的list對象
    LISTCHAR listTwo;
    //聲明i爲迭代器
    LISTCHAR::iterator j;

    //從前面向listTwo容器中添加數據
    listTwo.push_front ('A');
    listTwo.push_front ('B');

    //從後面向listTwo容器中添加數據
    listTwo.push_back ('x');
    listTwo.push_back ('y');

    //從前向後顯示listTwo中的數據
    cout<<"listTwo.begin()---listTwo.end():"<<endl;
    for (j = listTwo.begin(); j != listTwo.end(); ++j)
        cout << char(*j) << " ";
    cout << endl;

    //使用STL的max_element算法求listTwo中的最大元素並顯示
    j=max_element(listTwo.begin(),listTwo.end());
    cout << "The maximum element in listTwo is: "<<char(*j)<<endl;
}

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