温馨提示×

c++ operator[] 怎么用

c++
小樊
81
2024-12-02 15:44:50
栏目: 编程语言

在 C++ 中,operator[] 是一个重载的下标运算符,用于访问容器(如数组、向量、列表等)中的元素。它接受一个下标(索引)作为参数,并返回容器中该下标对应的元素。以下是一个简单的示例,展示了如何在自定义类中使用 operator[]

#include <iostream>
#include <vector>

class MyArray {
public:
    // 构造函数,初始化数组的大小
    MyArray(int size) : data(size) {}

    // 重载 operator[],获取指定下标的元素
    int& operator[](int index) {
        return data[index];
    }

    // 重载 operator[],获取指定下标的元素(常量版本)
    const int& operator[](int index) const {
        return data[index];
    }

private:
    std::vector<int> data;
};

int main() {
    MyArray arr(5); // 创建一个大小为 5 的数组

    // 使用 operator[] 设置数组元素的值
    arr[0] = 10;
    arr[1] = 20;
    arr[2] = 30;
    arr[3] = 40;
    arr[4] = 50;

    // 使用 operator[] 获取数组元素的值
    std::cout << "arr[0] = " << arr[0] << std::endl;
    std::cout << "arr[1] = " << arr[1] << std::endl;
    std::cout << "arr[2] = " << arr[2] << std::endl;
    std::cout << "arr[3] = " << arr[3] << std::endl;
    std::cout << "arr[4] = " << arr[4] << std::endl;

    return 0;
}

在这个示例中,我们创建了一个名为 MyArray 的类,它使用 std::vector<int> 作为底层数据结构。我们重载了 operator[] 以允许用户访问和修改数组中的元素。注意,我们提供了两个版本的 operator[]:一个用于非常量对象,另一个用于常量对象。这样,我们可以在常量对象上使用 operator[] 而不会导致编译错误。

0