C++ Deque::at() 函式



C++ 的std::deque::at() 函式用於根據元素的位置索引提供對元素的訪問,允許進行讀寫操作。當需要進行精確的邊界檢查時,它對於訪問 deque 中的元素非常有用。

與 operator[] 不同,at() 函式會驗證索引是否在邊界範圍內,如果索引無效則丟擲超出範圍異常。

語法

以下是 std::deque::at() 函式的語法。

reference at (size_type n);
const_reference at (size_type n) const;

引數

  • n - 表示容器中元素的位置。

返回值

此函式返回容器中指定位置處的元素。

異常

如果 n 無效,則丟擲超出範圍異常。

時間複雜度

此函式的時間複雜度為常數,即 O(1)。

示例

讓我們看下面的示例,我們將演示 at() 函式的基本用法。

#include <iostream>
#include <deque>
int main()
{
    std::deque<char> a = {'A', 'B', 'C', 'D'};
    char element = a.at(2);
    std::cout << "Element at given index : " << element << std::endl;
    return 0;
}

輸出

以上程式碼的輸出如下:

Element at given index : C

示例

考慮以下示例,我們將修改元素。

#include <iostream>
#include <deque>
int main()
{
    std::deque<int> a = {1,22,3,4444};
    a.at(2) = 333;
    for (int elem : a) {
        std::cout << elem << " ";
    }
    std::cout << std::endl;
    return 0;
}

輸出

以下是以上程式碼的輸出:

1 22 333 4444 

示例

在以下示例中,我們將訪問超出範圍的元素並觀察輸出。

#include <iostream>
#include <deque>
int main()
{
    std::deque<char> a = {'A', 'B', 'C', 'D'};
    try {
        char element = a.at(6);
        std::cout << "Element at given index : " << element << std::endl;
    } catch (const std::out_of_range& oor) {
        std::cerr << "Out of Range error: " << oor.what() << std::endl;
    }
    return 0;
}

輸出

如果我們執行以上程式碼,它將生成以下輸出:

Out of Range error: deque::_M_range_check: __n (which is 6)>= this->size() (which is 4)
deque.htm
廣告