有什么方法可以为std :: pair声明operator []?

时间:2018-10-12 01:59:11

标签: c++ stl

我想为std :: pair声明operator []函数, 所以我写下了这些代码:

template<typename T>
T& std::pair<T, T>::operator[](int x) {
    if (x == 0)
        return p.first;
    return p.second;
}

但是我遇到了编译错误,所以有什么方法可以为std :: pair声明operator []函数吗?

1 个答案:

答案 0 :(得分:3)

operator[]不能作为非成员函数重载。而且由于不允许您更改std::pair<>,因此无法使用first通过索引访问对secondoperator[]