C++的index函數在標準庫容器中的表現可能會有所不同,具體取決于你所使用的容器類型。以下是幾種常見容器中index函數的使用:
index函數(或者更準確地說是使用下標運算符[])來訪問數組中的元素。例如,arr[5]將返回數組arr中索引為5的元素。需要注意的是,如果訪問的索引超出了數組的范圍,結果將是未定義的。std::vector是一個動態數組,它有一個名為at的成員函數,該函數接受一個索引作為參數,并返回該索引處的元素。與數組不同,at函數會檢查索引是否在有效范圍內,如果不在,將拋出一個std::out_of_range異常。然而,如果你使用下標運算符[]來訪問vector中的元素,并且提供的索引超出了vector的大小,結果將是未定義的。std::string是一個字符序列,你可以使用下標運算符[]來訪問字符串中的單個字符。例如,str[4]將返回字符串str中索引為4的字符。與數組和向量類似,如果你訪問的索引超出了字符串的長度,結果將是未定義的。std::list是一個雙向鏈表,它沒有下標運算符[]。要訪問list中的元素,你需要使用迭代器或者調用成員函數如front()、back()、at()等。std::set是一個有序集合,std::map是一個關聯數組。它們都沒有下標運算符[],并且通常使用迭代器來訪問元素。需要注意的是,盡管index函數(或下標運算符[])在某些容器中可以用于訪問元素,但這并不意味著它們在所有情況下都是安全的。在使用這些函數時,你應該確保提供的索引在容器的有效范圍內,以避免未定義的行為。