📜  C++ STL-Deque.at()函数(1)

📅  最后修改于: 2023-12-03 14:59:45.638000             🧑  作者: Mango

C++ STL-Deque.at()函数
简介

在 C++ STL 中,deque 是一个双端队列容器。at() 函数是 deque 容器提供的成员函数之一,在 deque 中用于获取指定位置的元素值。

语法

deque::at (position)

  • position: 欲获取元素的位置,位置索引从 0 开始计数。
返回值

如果成功获取到指定位置的元素值,则返回该元素值;否则,抛出一个 out_of_range 异常。

示例
#include <iostream>
#include <deque>
using namespace std;

int main() {
  deque<int> mydeque = {10, 20, 30, 40, 50};
  
  // 输出 mydeque 中的元素值
  for (int i = 0; i < mydeque.size(); ++i) {
    cout << mydeque.at(i) << " ";
  }
  cout << endl;

  // 获取 mydeque 中第 3 个位置的元素值
  int a = mydeque.at(2);
  cout << "mydeque 中第 3 个位置的元素值为:" << a << endl;

  // 尝试获取 mydeque 中第 8 个位置的元素值,会抛出 out_of_range 异常
  try {
    int b = mydeque.at(7);
    cout << b << endl;
  } catch (const out_of_range& oor) {
    cout << "out_of_range 异常:" << oor.what() << endl;
  }

  return 0;
}

输出内容:

10 20 30 40 50 
mydeque 中第 3 个位置的元素值为:30
out_of_range 异常:deque::_M_range_check: __n (which is 7) >= this->size() (which is 5)
注意事项
  1. at() 函数会检查索引位置是否越界,如果越界,则抛出 out_of_range 异常,因此使用该函数必须在可能出现异常的情况下使用 try-catch 块来处理异常。
  2. 与 operator[] 不同,at() 函数不支持迭代器访问。