zoukankan      html  css  js  c++  java
  • c++中vector使用

    最近接触到c++的vector,感觉很方便,之前参加了一些竞赛,涉及到一些算法的时候,一直觉得代码写的很冗余,很长的一段。C++的vector就可以解决这个问题,使用起来很方便。

     

    之前我们写数组都是int  array[]的形式,但是去遍历数组的时候总是要知道数组的大小才行,另外删除和插入数据时操作十分的繁琐,虽然可以也可以去用链表存,但是我们还是喜欢简单的方法,链表实在是比较麻烦….

    现在有了容器以后,只需要vector<int > v;

     

    如果需要添加元素的话 只需要v.push_back();即可

     

    如果需要删除数组的元素的话,使用v.erase(v.begin()+1);  删除的是第一个元素(但其实是第二个元素了,它也是从0开始计的(0,1,2……)  )我下面说的第几个,都是指从0开始的。

    另外,它可以删除一段区间的所有元素。v.erase(v.begin()+1,v.begin()+5); 删除的是下标1,2,3,4的元素。并没有删除下标为5的元素,这一点需要注意!删除的是到v.begin()+5前一个元素为止的。

     

    插入元素的话  使用v.insert(v.begin(),1);在第零个元素前面插1

    v.insert(v.begin()+2,2);在第二个元素前插2

    v.insert(v.end(),1000);注意 这个是在最后一个元素后面插的1000,而并不是最后一个的前面。大家可以自己自己试试。

     

    另外在这里讲一下遍历。vector<int>::iterator it; it

    for(it=v.begin();it!=v.end();it++)

           cout<<*it<<' ';

           cout<<endl;

    这样就可以遍历整个数组了,我c++的语法也有点忘记了,但是这里的it无非就是一个指针,暂且不去细究这个语法。

     

    v.size();元素的个数

     

    v.clear();清除所有元素

     

    需要头文件#include<vector>

     1 #include<iostream>
     2 #include<vector>
     3 using namespace std;
     4 int main()
     5 {
     6     vector<int>::iterator it;
     7     vector<int >  v;
     8     int i;
     9     for(i=0;i<10;i++)//添加10个元素 1,2,3.... 
    10     {
    11         v.push_back(i);
    12     }
    13     
    14     for(it=v.begin();it!=v.end();it++)//遍历一下整个数组 
    15     cout<<*it<<" ";
    16     cout<<endl;
    17     
    18     v.erase(v.begin()+1);//删除的是第一个元素(下标从0开始)
    19                         // 也就是1 ,所以现在是0,2,4...9 
    20     v.insert(v.begin()+1,1);//把删除的再加进去 
    21     v.erase(v.begin()+1,v.begin()+4);//删除的第1,2,3 的元素共三个元素
    22     //也就是剩下的是 0,4,5,6,7,8,9
    23     for(it=v.begin();it!=v.end();it++)//遍历一下整个数组 
    24     cout<<*it<<" ";
    25     cout<<endl;     
    26     
    27     cout<<v.size()<<endl;//看一下数组的大小
    28     
    29     v.clear();
    30     
    31     cout<<v.size()<<endl;
    32     return 0;
    33              
    34     
    35     
    36                         
    37     
    38 }

     

  • 相关阅读:
    win10家庭版安装Docker for Windows
    docker镜像拉取速度过慢的解决
    解决docker: error pulling image configuration: Get https://registry-1.docker.io/v2/library/mysql/: TLS handshake timeout.
    ubuntu16.04下安装docker
    Ubuntu 16.04执行 sudo apt-get update非常慢解决方案
    [转载]MySQL存储过程详解  mysql 存储过程
    除非 Windows Activation Service (WAS)和万维网发布服务(W3SVC)均处于运行状态,
    windows资源管理器已经停止工作
    Shell脚本sqlldr导入数据压缩文件截断
    oracle 日常运维
  • 原文地址:https://www.cnblogs.com/tvtaqa/p/6749025.html
Copyright © 2011-2022 走看看