vector

**

vector

**
介绍的是vector的一些操作方法,个人感觉和string差不多,只是vector是个动态数组,好多操作都是自己的函数直接进行操作

#include<iostream>
#include<algorithm>
#include<vector>
#include<iomanip>
using namespace std;
vector<int>a(4);
vector<int>a1(4,2);
vector<int>a2(a1);
vector<int>a3(a1.begin(),a1.begin()+2);//复制a1的前二个,因为同为向量类型需加begin()
int b[10]={1,2,3,4,5,6,7,8,9,0};
vector<int>a10(b,b+8);
vector<int>a4(b,b+5);//因为b为整型数组可以这样写
vector<int> z,x;
int main()
{
    a4.push_back(100);//最后一个位置的后面插入100
    a4.insert(a4.begin(),111);//在最前面插入111
    a4.insert(a4.begin()+1,111);//在下标为1的前面插入111
    a4.insert(a4.begin()+1,4,6);//在下标为1的前面插入四个数值均为6的元素
    a4.insert(a4.begin()+1,b+2,b+5);//注意此处b为数组,在下标为1的前面插入b的下标从2到5的元素
    a.size();// 返回a中的元素
    a.capacity();//返回a可以储存的元素
    x.resize(15);//将x的元素调整为15个,多的删除,少的补充,补充的元素的值随机
    a.resize(10,2);//将x的元素调整为10个,多的删除,少的补充,补充的元素的值为2
    x.reserve(100);//将容量扩充为100
    a1.swap(a4);//将a1和a4进行转换
    
    cout<<a4[0]<<" "<<a4[1]<<endl;
    z.assign(a1.begin(),a1.begin()+3);
    z.assign(4,6);//z中有4个为值6的元素
    cout<<a4.front()<<endl;//返回第一个元素
    cout<<a4.back()<<endl;//返回最后一个元素
    z.clear();//清空z中所有元素
    cout<<a4.empty()<<endl<<z.empty()<<endl;
    //判断是否为空·,不为空输出0   为空输出1
    a1.pop_back();//删除最后一个元素
    a4.erase(a4.begin()+1,a4.begin()+3);//删除下标从1到3的元素,并用后面的元素补齐删除的空缺
    vector<int>p;
    for(int i=0;i<10;++i){p.push_back(i);}
    //向向量p增加元素
    //下面主要介绍vector的几种简单的应用算法
    //对a中的从a.begin()到a.end()的元素进行从小到大排列
    sort(a.begin(),a.end());
    //对a中的从a.begin()(到a.end()的元素倒置,但不排列,如a中元素为1,3,2,4,倒置后为4,2,3,1
    reverse(a.begin(),a.end());
     //把a中的从a.begin()到a.end()的元素复制到b中,从x.begin()+1的位置(包括它)开始复制,覆盖掉原有元素
    copy(a.begin(),a.end(),x.begin()+1);
    std :: vector<int>::iterator it=find(a10.begin(),a10.end(),4);
    if(it!=a10.end())
        cout<<*it;  //因为vectorn本身没有搜索功能,需要写头文件algorithm
                     //因为命名空间的问题 需要加上std::
                     //对于string ,*it相当于一个字符
                     //对于vector<string> *it 相当于一个string
                     //因此  *it相当于 int
    return 0;
}

最后建议 :眼过千遍不如手过一遍!
书看千行不如手敲一行!
手敲千行不如单步一行!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值