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;

  • 相关阅读:
    金额小写转大写
    python3 简单抓取网页
    解决IOS下 input 只有底部边框时,出现 四周虚线框的问题
    如何判断是否为PC端 还是 移动端
    PHP如何获取当前主机、域名、网址、路径、端口等参数
    常用less变量定义
    PHP生成验证码2
    extract高级用法 编写简历MVC模式
    js获取文档高度
    Mysql Master-Slave 简单介绍
  • 原文地址:https://www.cnblogs.com/yutingliuyl/p/7151238.html
Copyright © 2011-2022 走看看