在C++中,operator[]
是數組和容器(如向量、列表等)的重要訪問方式。為了優化operator[]
,你可以考慮以下幾點:
const T& operator[](size_t index) const {
return data_[index];
}
T& operator[](size_t index) {
return data_[index];
}
inline
關鍵字:將operator[]
聲明為內聯函數,可以減少函數調用的開銷。例如:inline T& operator[](size_t index) {
return data_[index];
}
class MyArray {
public:
MyArray(size_t size) : size_(size), data_(new T[size]) {}
T& operator[](size_t index) {
return data_[index];
}
private:
size_t size_;
T* data_;
};
std::vector
或std::array
:如果適用,可以考慮使用標準庫中的容器,它們已經經過了高度優化。例如:std::vector<T> vec;
vec[0] = 42; // 使用std::vector的operator[]
operator[]
更高效。例如,如果你只需要訪問數組的一個元素,可以使用指針:T* ptr = data_;
ptr[0] = 42; // 使用指針訪問元素
總之,優化operator[]
的關鍵是減少不必要的拷貝和計算開銷。具體如何優化取決于你的需求和數據結構。