C++STL反復--反復を挿入

3692 ワード

#include "stdafx.h"
#include 
#include 
#include 
#include 
#include 
/*
*                   :         (   、   )。
*         ,                      ,        ,           。
*/
using namespace std;

int main()
{

    //c++     
    vector<int> vInt = { 1,2,3,4,5 };
    list<int> listInt;

    //       ,    push_back
    back_insert_iterator<decltype(listInt)> backIter(listInt);
    *backIter = 30;

    //copy       
    copy(vInt.begin(), vInt.end(), back_insert_iterator<decltype(listInt)>(listInt));
    for (auto iter = listInt.begin(); iter != listInt.end(); ++iter)
    {
        cout << *iter << " ";
    }
    cout << endl;


    //       ,    push_front
    front_insert_iterator<decltype(listInt)> frontIter(listInt);
    *backIter = 30;

    //copy       
    copy(vInt.begin(), vInt.end(), front_insert_iterator<decltype(listInt)>(listInt));
    for (auto iter = listInt.begin(); iter != listInt.end(); ++iter)
    {
        cout << *iter << " ";
    }
    cout << endl;

    //             
    auto iter = listInt.begin();
    int pos = 3;                //    
    while (--pos)
    {
        ++iter;
    }

    //       
    auto iIter = insert_iterator<decltype(listInt)>(listInt,iter);
    *iIter = 35;
    for (auto iter = listInt.begin(); iter != listInt.end(); ++iter)
    {
        cout << *iter << " ";
    }
    cout << endl;

    return 0;
}