实战c++中的vector系列--vector的一些异常
2024-09-06 14:18:43
今天就写一写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() << '\n';
}
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() << '\n';
}
return 0;
}
vector* pData;
最新文章
- JavaScript权威设计--JavaScript脚本化文档Document与CSS(简要学习笔记十五)
- COGS732. [网络流24题] 试题库
- NEFU 558 迷宫寻路
- JQuery实现页面刷新滚动条自动滚动到特定位置
- 关于ubuntu下词典安装
- java.net.SocketException: recvfrom failed: ECONNRESET (Connection reset by peer)
- 使用RBL拦截垃圾邮件
- Android中LayoutInflater的使用
- Java深度遍历文件夹(递归实现)
- 【原创】Ajax的用法总结
- Zabbix实战-简易教程--告警屏蔽(Maintenances)
- Spark学习笔记之RDD中的Transformation和Action函数
- 微信的自动回复&;接入聊天机器人
- 在web应用中使用Log4j 2
- CSS多行文字超出隐藏加省略号
- JavaScript标识符与关键字和保留字
- Linux内核分析作业八
- Tornado入门
- Asp.net中汉字转换成为拼音
- 【转载】TCP 与 UDP 的区别