STL顺序容器操作7

1.赋值与交换( swap )

        c1 = c2         c1.swap( c2 )        c.assign( b, e )           c.assign( n, t )

2.使用assign:   类型兼容即可

3.使用swap :  类型必须相同

#include <iostream>
#include <vector>
#include <deque>
#include <list>
#include <string>


using namespace std;
int main( int argc, char** argv )
{
    vector<int> a;
    vector<int> b;
    vector<int> c;
    vector<char *> vec;
    list<string> lst;

    vec.push_back("apple");
    vec.push_back("big");
    vec.push_back("cat");

    lst.push_back("c");
    lst.push_back("c++");
    lst.push_back("java");
    lst.push_back("c#");
    
    lst.assign(vec.begin(), vec.end());
    for(list<string>::iterator itr = lst.begin(); itr != lst.end(); itr++ )
    {
        cout<<*itr<<endl;
    }
    lst.assign( 10, "hello");
    for(list<string>::iterator itr = lst.begin(); itr != lst.end(); itr++ )
    {
        cout<<*itr<<endl;
    }

    a.push_back(10);
    a.push_back(20);
    a.push_back(30);
    a.push_back(40);

    b.push_back(100);
    b.push_back(200);
    b.push_back(300);

    c.push_back(1);
    c.push_back(2);
    c.push_back(3);
    c.push_back(4);
    c.push_back(5);
    c.push_back(6);

    a.swap(b);
    for( vector<int>::iterator itr = a.begin(); itr != a.end(); itr++ )
    {
        cout<<*itr<<endl;
    }

    a = b;
    for( vector<int>::iterator itr = a.begin(); itr != a.end(); itr++ )
    {
        cout<<*itr<<endl;
    }
    
    vector<int>::iterator f = c.begin();
    ++f;
    ++f;
    vector<int>::iterator e = c.end();
    --e;

    //a.assign(c.begin(), c.end());
    a.assign(f,e);
    for( vector<int>::iterator itr = a.begin(); itr != a.end(); itr++ )
    {
        cout<<*itr<<endl;
    }

    return 0;
}



posted @ 2015-02-28 18:08  SandKing  阅读(6)  评论(0)    收藏  举报  来源