溫馨提示×

c++ index函數(shù)如何處理越界情況

c++
小樊
85
2024-09-25 06:07:12
欄目: 編程語言

在 C++ 中,vector 和數(shù)組等容器提供了 at() 成員函數(shù)來訪問其元素。當(dāng)使用 at() 函數(shù)訪問超出容器范圍的索引時,會拋出一個 std::out_of_range 異常。

operator[] 成員函數(shù)則允許訪問任何索引的元素,無論是否越界。但是,如果訪問越界,則會導(dǎo)致未定義的行為,可能會導(dǎo)致程序崩潰或其他錯誤。

因此,在使用 operator[] 函數(shù)時,應(yīng)該確保索引在容器范圍內(nèi)。如果需要檢查索引是否越界,可以使用容器的 size() 成員函數(shù)來獲取容器的大小,并與訪問的索引進(jìn)行比較。

例如,以下代碼使用 vectorat() 函數(shù)來訪問元素,并檢查索引是否越界:

#include <iostream>
#include <vector>

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};
    int index = 4;

    if (index >= 0 && index < vec.size()) {
        std::cout << "vec[" << index << "] = " << vec.at(index) << std::endl;
    } else {
        std::cout << "Index out of range!" << std::endl;
    }

    return 0;
}

在上面的代碼中,我們首先檢查索引是否在容器范圍內(nèi),如果是,則使用 at() 函數(shù)訪問元素并輸出結(jié)果;否則,輸出錯誤信息。

0