zoukankan      html  css  js  c++  java
  • 实战c++中的vector系列--vector的一些异常

    今天就写一写vector的一些异常。能够捕捉的异常。

    out_of_range
    相当于数组的越界了。vector会自己主动增大容量,可是假设索引超出了当前的size。就会引发异常。

    #include<iostream>
    #include<vector>
    using namespace std;
    int main()
    {
        vector<int>v(4);
        std::cout << v[0] << std::endl;
        std::cout << v[1] << std::endl;
        std::cout << v[2] << std::endl;
        std::cout << v[3] << std::endl;
        std::cout << v[4] << std::endl;//越界
        return 0;
    }

    除了使用索引外,还有使用vector.at()时发生越界:

    #include <iostream>       // std::cerr
    #include <stdexcept>      // std::out_of_range
    #include <vector>         // std::vector
    
    int main (void) {
      std::vector<int> myvector(10);
      try {
        myvector.at(20)=100;      // vector::at throws an out-of-range
      }
      catch (const std::out_of_range& oor) {
        std::cerr << "Out of Range error: " << oor.what() << '
    ';
      }
      return 0;
    }

    std::length_error
    在使用vector的时候,非常少会引发std::length_error异常,可是假设疏忽大意写这种代码:

    #include <iostream>       // std::cerr
    #include <stdexcept>      // std::length_error
    #include <vector>         // std::vector
    
    int main (void) {
      try {
        // vector throws a length_error if resized above max_size
        std::vector<int> myvector;
        myvector.resize(myvector.max_size()+1);
      }
      catch (const std::length_error& le) {
          std::cerr << "Length error: " << le.what() << '
    ';
      }
      return 0;
    }

    vector* pData;

  • 相关阅读:
    多语言网站(如何实现网站的多语言版本?)
    宝塔linux面板.txt
    什么是海外镜像点?
    一步一步CCNA之三:路由器全局配置模式
    Kmeans算法 与 KNN算法
    新浪公开课
    shanghaiR
    Announcing Couch Crawler, a CouchDB search engine/crawler
    字符串相似度算法(编辑距离算法 Levenshtein Distance)
    R与SAS、SPSS的比较
  • 原文地址:https://www.cnblogs.com/yutingliuyl/p/7151238.html
Copyright © 2011-2022 走看看