legongju.com
我们一直在努力
2025-01-10 05:22 | 星期五

c++ operator[] 怎么用

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

#include 
#include 

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 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 作为底层数据结构。我们重载了 operator[] 以允许用户访问和修改数组中的元素。注意,我们提供了两个版本的 operator[]:一个用于非常量对象,另一个用于常量对象。这样,我们可以在常量对象上使用 operator[] 而不会导致编译错误。

未经允许不得转载 » 本文链接:https://www.legongju.com/article/48983.html

相关推荐

  • table在C++多线程环境下的使用注意事项

    table在C++多线程环境下的使用注意事项

    在C++多线程环境下使用std::table时,需要注意以下几点: 线程安全:std::table本身并不是线程安全的。如果多个线程同时访问和修改std::table,可能会导致数据不...

  • C++ table的性能优化策略有哪些

    C++ table的性能优化策略有哪些

    在C++中,表(通常是指数组或向量)的性能优化可以从多个方面进行。以下是一些建议: 预先分配内存:当你知道表的大小时,预先分配足够的内存空间,以避免在运行...

  • 如何自定义C++的table类

    如何自定义C++的table类

    要自定义一个C++的表格(table)类,你需要先确定你的表格类需要哪些功能。例如,你可能需要添加、删除和修改行和列,以及获取和设置单元格的值。下面是一个简单...

  • C++标准库中有无现成的table实现

    C++标准库中有无现成的table实现

    C++ 标准库没有直接提供一个名为 “table” 的容器类 std::vector:这是一个二维向量,可以用来表示一个动态大小的表格。你可以通过调整外部向量的大小来改变表格...

  • java的set集合 怎么确保唯一性

    java的set集合 怎么确保唯一性

    在Java中,Set集合是一个不允许重复元素的集合。当你向Set中添加元素时,它会自动确保元素的唯一性。以下是一些常用的Set实现类: HashSet:基于哈希表的实现,它...

  • java的set集合 如何排序

    java的set集合 如何排序

    在Java中,Set集合是一个无序的集合,这意味着它不会对其元素进行排序。但是,如果你想要对Set集合中的元素进行排序,你可以将Set转换为一个List,然后使用Colle...

  • python命令行传参怎样更高效

    python命令行传参怎样更高效

    在Python中,可以通过以下几种方式高效地传递命令行参数: 使用sys.argv模块:
    sys.argv是一个包含命令行参数的字符串列表。sys.argv[0]是脚本名称,sys.ar...

  • python命令行传参有哪些方式

    python命令行传参有哪些方式

    在Python中,命令行传参有多种方式,以下是一些常见的方法: 使用sys.argv模块:sys.argv是一个包含命令行参数的列表。sys.argv[0]是脚本的名称,其余元素是传递...