STL--vector

概念:vector为动态容器模板类,可以视为可变长数组
定义:

vector<int>v
vector<double>v(n)// 定义一个含有n个double元素的vector对象
vector<int> s(first, last); 
//  定义一个vector对象,并从由迭代器first和last定义的序列[first, last)中复制初值

vector常用的的函数与方法

s[i]                //  直接以下标方式访问容器中的元素
s.front()           //  返回首元素
s.back()            //  返回尾元素
s.push_back(x)      //  向表尾插入元素x
s.size()            //  返回表长
s.empty()           //  表为空时,返回真,否则返回假
s.pop_back()        //  删除表尾元素
s.begin()           //  返回指向首元素的随机存取迭代器
s.end()             //  返回指向尾元素的下一个位置的随机存取迭代器
s.insert(it, val)   //  向迭代器it指向的元素前插入新元素val
s.insert(it, n, val)//  向迭代器it指向的元素前插入n个新元素val
s.insert(it, first, last)   
//  将由迭代器first和last所指定的序列[first, last)插入到迭代器it指向的元素前面
s.erase(it)         //  删除由迭代器it所指向的元素
s.erase(first, last)//  删除由迭代器first和last所指定的序列[first, last)
s.reserve(n)        //  预分配缓冲空间,使存储空间至少可容纳n个元素
s.resize(n)         //  改变序列长度,超出的元素将会全部被删除,如果序列需要扩展(原空间小于n),元素默认值将填满扩展出的空间
s.resize(n, val)    //  改变序列长度,超出的元素将会全部被删除,如果序列需要扩展(原空间小于n),val将填满扩展出的空间
s.clear()           //  删除容器中的所有元素
s.swap(v)           //  将s与另一个vector对象进行交换
s.assign(first, last)
//  将序列替换成由迭代器first和last所指定的序列[first, last),[first, last)不能是原序列中的一部分

用代码实现的形式为:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    vector<int> v,t;
    int temp;
    int m,n;
    cin>>m;
    for(int i=0;i<m;i++)
    {
        cin>>temp;
        v.push_back(temp);//向容器尾插入元素 
    }
    cout<<v.front()<<" "<<v.back()<<endl;//返回首尾元素 
    cout<<v[0]<<endl; // 直接以下标方式访问容器中的元素 
    cout<<v.size()<<endl; //容器的大小
    v.pop_back();//删除容器尾元素
    if(v.empty()==true)cout<<"YES"<<endl;//判断容器是否为空 
    else cout<<"NO"<<endl; 
    vector<int>::iterator it,rit;
     it=v.begin();//返回元素首元素的迭代器 
     rit=v.end();//返回元素尾元素的后一个元素的迭代器 
     for(;it!=rit;it++)
     {
         cout<<*it<<" ";
     }
     cout<<endl;
     vector<int>::iterator tit;
     cin>>n;
     for(int i=0;i<n;i++)
     {
         tit=t.begin();
         cin>>temp;
         t.insert(tit,temp);//向迭代器tit指向的元素前插入新元素temp
     }
     cin>>temp;
     tit=t.end();
     t.insert(tit,3,temp);//向迭代器tit指向的元素前插入n个新元素temp
     tit=t.begin();
     t.erase(tit);//删除由迭代器it所指向的元素
     v.swap(t);
     for(int i=0;i<t.size();i++)
     {
         cout<<t[i]<<" ";
     }
     cout<<endl;
     t.clear();
     if(t.empty()==true)cout<<"YES"<<endl;
     else cout<<"NO"<<endl;
     return 0;
 } 

结果如图所示:
图片说明
引用参考:
vector的用法

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务