c++ - 运算符同时重载 = 和 []

标签 c++ vector

<分区>

我正在用 C++ 实现我自己的 vector 。

这是我的 Vector 类:

template <class T>
class Vector
{

    private :
        T *ptr;
        unsigned int numEle;

    public :
        T operator[] (unsigned int index)
        {
            if (index >= numEle)
                return ptr[0];
            else if (index < 0)
                 return ptr[0];
            else
                 return ptr[index];
        }

};

我想做的是重载 = 运算符,这样当我写

  Vector v;
  v[2]=2; 

它将值 2 分配给第二个索引.... 请帮助..!!

最佳答案

应该是

T& operator [] (unsigned int index)

针对您的情况。此外,我建议您编写运算符的 const 版本。

const T& operator [] (unsigned int index) const

关于c++ - 运算符同时重载 = 和 [],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23952863/

相关文章:

c++ - 无法从 vector<T> 转换为 T

c++ - 巨大的性能下降 - vector 问题?

c++ - Windows MAX/MIN 宏作为模板

c++ - 打印字符串 vector 的映射

c++ - 为什么我们不能像在 C++ 中输入数组那样输入 vector ?

c++ - 字符串没有在 C++ 中打印完整的行?

c++ - 创建一个接口(interface)和一个具体类并在 vector 中使用它们会导致调用方法时出现奇怪的行为

c++ - 为什么通用引用作为输入参数不起作用

C++ 可变参数模板委托(delegate)周期错误

c++ - 运行时在 C++ 上调试断言失败