我有一个名为Vector的类,它包含带数字的动态数组。但数组必须始终排序。我有一些方法,如changeSize
,addElement
等,但唯一的问题是重载数组运算符。必须返回特定的数字才能读或写。这是我的代码:
double &Vector::operator[](unsigned index) {
if (!length || index > length - 1) {
std::fputs("Vector::operator[]: invalid index!", stderr);
exit(EXIT_FAILURE);
}
return vector[index];
}
一切都很好但这个方法打破了整齐的主体。例如:
Vector vector(2);
vector[0] = 1.2;
在这种情况下,我正在更改函数外部的值,并且无法对已排序的元素进行更改。有没有办法用[]运算符?