zoukankan      html  css  js  c++  java
  • 容器vector的使用总结 容器stack(栈)

    0、头文件:#include<vector>;  using namespace std;

    1、定义: vector<type> vec; 

    2、迭代器

    vector<type>::iterator it;  
    vector<type>::const_iterator it;  
    vector<type>::reverse_iterator it;  
    vector<type>::const_reverse_iterator it;  

    3、vector功能

     存取元素的方法:

      vec[i] 和 vec.at(i) //存取第i个元素
      vec.front()  //存取第一个元素,注意 vce.front()=122;//表是给第一个元素赋值为122,等价于  vec[0]= 122;
      vce.back()  //存取最后一个元素

    新增或移除元素的方法:

      vec.push_back();  //在容器最后加一个元素
      vec.insert();    //插入一個或多個元素至 vector 內的任意位置 

    #include <iostream>
    #include <vector>
    
    void print_vec(const std::vector<int>& vec)
    {    
        for (std::vector<int>::const_iterator it=vec.begin();it!=vec.end();it++) {
            std::cout << ' ' << *it;
        }
        std::cout << '
    ';
    }
    
    int main ()
    {
        std::vector<int> vec(3,100);
        print_vec(vec);
    
        std::vector<int>::iterator it = vec.begin();
        it = vec.insert(it, 200);
        print_vec(vec);
    
        vec.insert(it,2,300);
        print_vec(vec);
    
        // "it" no longer valid, get a new one:  //不再可用**********
        it = vec.begin();
    
        std::vector<int> vec2(2,400);
        vec.insert(it+2, vec2.begin(), vec2.end());
        print_vec(vec);
    
        int arr[] = { 501,502,503 };
        vec.insert(vec.begin(), arr, arr+3);
        print_vec(vec);
    }
    View Code

      vec.pop_back()    // 刪除 vector 最尾端的元素
      vec.erase()  //刪除 vector 中一個或多個元素。
      vec.clear() //清空所有元素。

    获取容器的长度和容量:

      vec.size()   // 取得 vector 目前持有的元素个数。
      vec.empty()  //如果 vector 內部为空,则返回 true 值。
      vec.capacity() // 取得 vector 目前可容納的最大元素个数。

    改变容器的大小:

      vec.reserve()  //改变ector 的容量大小,容量只能增加,不可以減少。
      vec.resize()  //改变vector 目前持有的元素个数。

    迭代四个:vec.begin() vec.end() vec.rbegin() vec.rend()

    容器stack

    栈(FIOL,First-in Last-out)三个主要的功能---存、取、删。

    stack<int>  myStack ;
    myStack.push(3);   //
    myStack.top();       //
    myStack.pop();      //

     容器map

    #include <iostream>
    #include<string>
    #include<map>
    using namespace std;
    
    int main ()
    {    
        map<string,int> myMap;    
        map<string,int>::iterator myMapIt;    
        myMap["wo"] = 2;                                    //存入方法1
        myMap.insert(make_pair("ni",1));                //存入方法2
        for (myMapIt = myMap.begin();myMapIt!=myMap.end();myMapIt++) //遍历元素
        {
            cout<<myMapIt->first<<endl;
            cout<<myMapIt->second<<endl;
            cout<<myMap["ni"];
        }
        myMap.count("wo"); //返回值为1,即表示存在键值为"wo",不存在返回为0.(注意只有1、0两个值)
        myMap.erase("ni");    //删除
        myMap.clear()    ;
        return 0;
    }

  • 相关阅读:
    poj2756
    poj3425
    poj1740
    poj1948
    poj2853
    如何在CRichEditCtrl控件中直接读如RTF格式的文件
    pRichEdit&gt;SetBackgroundColor(FALSE, oldclr); 只能设置一半 的背景色
    Directx报错02
    报错 error C2664: 'CreateWindowExA' : cannot convert parameter 2 from 'unsigned short [10]' to 'const char *'
    Debug/Release Dll报错
  • 原文地址:https://www.cnblogs.com/lwngreat/p/4750478.html
Copyright © 2011-2022 走看看