zoukankan      html  css  js  c++  java
  • C++之路起航——标准模板库(vector)

      vector(动态数组或向量):动态分配内存空间的线性储存结构。  

         需要包括头文件<vector>

        定义:

            vector<数据类型> 变量名;

            Eg:

                 vector<int> s; //定义了一个数据类型为整形的动态数组;

          基本操作(红色标识为常用操作):   

      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, x) 向迭代器it 指向的元素前插入新元素x。
      s.insert(it, n, x)向迭代器it 指向的元素前插入n 个x。
      s.insert(it, first, last)将由迭代器first 和last 所指定的序列[first, last)插入到迭代器it 指向的元素前面。 
      s.erase(it)删除由迭代器it 所指向的元素。
      s.erase(first, last)删除由迭代器first 和last 所指定的序列[first, last)。    
      s.clear()删除容器中的所有的元素。
      s.swap(v)将s 与另一个vector 对象v 进行交换。

         代码解释:      

    #include<vector>
    #include<iostream>

    using namespace std;

    vector <int> a;//定义整型动态数组a;
    int main()
      {
       a.push_back(1);//在表末压入数字1;
       a.push_back(2);
       a.push_back(3);
       cout<<*a.end()<<endl;//用于解释迭代器所指向的为表末元素的下一个储存位置;
        vector <int> ::iterator itor=a.begin();//迭代器只了解即可,蓝色标识部分为迭代器的类型,为整型动态数组的迭代器ator,初始位置为a.begin();
       for (;itor!=a.end();itor++)//用迭代器来遍历表中的所有元素;
         cout<<*itor<<endl;//迭代器类似于指针,需要用*运算来取得其内容;
       for (int i=0;i<a.size();i++)
       cout<<a[i]<<endl; //利用下标法来遍历表中所有元素;
       a.pop_back();//删除表末最后一个元素;3 out
       cout<<*(a.end()-1)<<endl;//输出表末最后一个元素,这时输出的是2;
       return 0;
      }

    //若看不太懂,推荐C++远征之模板篇第六章 标准模板类。

  • 相关阅读:
    P2610 [ZJOI2012]旅游
    P2323 [HNOI2006]公路修建问题
    P3629 [APIO2010]巡逻
    ARC059F
    AGC004D Teleporter
    p3203 弹飞绵羊
    bzoj5450 轰炸
    bzoj4313 三维积木
    cf123E Maze
    bzoj4423 [AMPPZ2013]Bytehattan
  • 原文地址:https://www.cnblogs.com/grhyxzc/p/5061096.html
Copyright © 2011-2022 走看看