• STL之vector(向量)


    C++编程语言中有一种叫做Vector的应用方法,它的作用在实际编程中是非常重要的,这里详细介绍一下C++ Vector的相关应用技巧及基本内容: Construct vector
    #include
    #include
    using namespace std ;
    int main()  {
        vector first ;                     //定义一个对象
        vector second(4,100) ;             //定义一个对象,并为该对象赋初始值
        vector third(second.begin(),second.end()) ;  // 将对象second中的值赋给hird
        vector fourth(third) ;             //将对象third中的值赋给ourth
        int a[] = {1,2,3,4,5,6,7,8} ;
        vector fifth(a,a+6) ;              //将数组a中的前6个值赋给对象ifth
    
        vector::iterator iter2 = second.begin() ;
        for(; iter2 != second.end() ; iter2++)
            cout << *iter2 << " " ;
        cout << endl ;
    
        vector::iterator iter3 = third.begin() ;
        for(; iter3 != third.end() ; iter3++)
            cout << *iter3 << " " ;
        cout << endl ;
    
        vector::iterator iter4 = fourth.begin() ;
        for(; iter4 != fourth.end() ; iter4++)
            cout << *iter4 << " " ;
        cout << endl ;
    
        vector::iterator iter5 = fifth.begin() ;
        for(; iter5 != fifth.end() ; iter5++)
            cout << *iter5 << " " ;
        cout << endl ;
    
        //也可以这样输出对象中的数据
    
        for(int i = 0 ; i < fifth.size() ; i++)
            cout << fifth[i] << " " ;
        cout << endl ;
    
        return 0 ;
    }
    
    对象的复制
    #include
    #include
    #include
    using namespace std ;
    typedef vector  ve ;
    int main()  {           //对象的复制
        ve foo(3,0) ;
        ve bar(5,0) ;
        bar = foo ;
        foo = ve() ;
        cout << foo.size() << endl ;
        cout << bar.size() << endl ;
        return 0 ;
    }
    
    逆序输出:
    #include
    #include
    #include
    using namespace std ;
    typedef vector  ve ;
    int main()  {           //逆序输出
        int a[] = {1,2,3,4,5,6,7,8} ;
        ve v(a,a+sizeof(a)/sizeof(int)) ;
        ve::reverse_iterator iter = v.rbegin() ;
        for( ; iter != v.rend() ; iter++)
            cout << *iter << " " ;
        cout << endl ;
        return 0 ;
    }
    
    重定义对象的大小:
    #include
    #include
    #include
    using namespace std ;
    typedef vector  ve ;
    int main()  {
        int a[] = {1,2,3,4,5,6,7,8} ;
        ve v(a,a+sizeof(a)/sizeof(int)) ;
        v.resize(10) ;
        for(int i = 0 ; i < v.size() ; i++)
            cout << v[i] << " " ;
        cout << endl ;
    
        v.resize(5) ;
        for(int i = 0 ; i < v.size() ; i++)
            cout << v[i] << " " ;
        cout << endl ;
    
        v.resize(10,100) ;
        for(int i = 0 ; i < v.size() ; i++)
            cout << v[i] << " " ;
        cout << endl ;
        return 0 ;
    }
    
    判断对象是否为空:
    #include
    #include
    #include
    using namespace std ;
    typedef vector  ve ;
    int main()  {
        int a[] = {1,2,3,4,5,6,7,8} ;
        ve v(a,a+sizeof(a)/sizeof(int)) ;
        while(!v.empty())   {
            cout << v.back() << " " ;
            v.pop_back() ;
        }
        cout << endl ;
        return 0 ;
    }
    
    对象中第一个元素和最后一个元素:
    #include
    #include
    #include
    using namespace std ;
    typedef vector  ve ;
    int main()  {
        int a[] = {1,2,3,4,5,6,7,8} ;
        ve v(a,a+sizeof(a)/sizeof(int)) ;
        cout << v.front() << " " ;
        cout << v.back() << " " ;
        cout << endl ;
        return 0 ;
    }
    
    在对象中插入一个元素:
    #include
    #include
    #include
    using namespace std ;
    typedef vector  ve ;
    int main()  {
        int a[] = {1,2,3,4,5,6,7,8} ;
        ve v(a,a+sizeof(a)/sizeof(int)) ;
        ve::iterator iter = v.begin() ;
        iter = v.insert(iter+2,200) ;  // 在第二个元素之后插入一个元素200
        for(int i = 0 ; i < v.size() ; i++)
            cout << v[i] << " " ;
        cout << endl ;
        return 0 ;
    }
    
    或者这样实现插入:
    #include
    #include
    #include
    using namespace std ;
    typedef vector  ve ;
    int main()  {
        int a[] = {1,2,3,4,5,6,7,8} ;
        ve v(a,a+sizeof(a)/sizeof(int)) ;
        v.insert(v.begin(),2,200) ;  // 在第一个元素之前插入两个元素200
        for(int i = 0 ; i < v.size() ; i++)
            cout << v[i] << " " ;
        cout << endl ;
        return 0 ;
    }
    
    对象中元素的删除:
    #include
    #include
    #include
    using namespace std ;
    typedef vector  ve ;
    int main()  {
        int a[] = {1,2,3,4,5,6,7,8} ;
        ve v(a,a+sizeof(a)/sizeof(int)) ;
        v.erase(v.begin(),v.begin()+2) ;  // 删除前两个元素
        for(int i = 0 ; i < v.size() ; i++)
            cout << v[i] << " " ;
        cout << endl ;
        return 0 ;
    }
    
    清空对象中的所有元素:
    #include
    #include
    #include
    using namespace std ;
    typedef vector  ve ;
    int main()  {
        int a[] = {1,2,3,4,5,6,7,8} ;
        ve v(a,a+sizeof(a)/sizeof(int)) ;
        v.clear() ;
        for(int i = 0 ; i < v.size() ; i++)
            cout << v[i] << " " ;
        cout << endl ;
        return 0 ;
    }
    
  • 相关阅读:
    .NET基础——数组
    .NET基础——循环、枚举
    .NET基础——运算符
    .NET基础——基本概念
    面向对象基础——结构体
    面向对象基础——静态成员、静态类
    面向对象基础——基本概念
    接口 与 抽象类
    委托与事件——事件
    委托与事件——委托
  • 原文地址:https://www.cnblogs.com/NYNU-ACM/p/4236857.html
Copyright © 2020-2023  润新知