代码来源:《数据结构(c++语言版)(第三版)》,邓俊辉编著,ISBN: 978-7-302-33064-6
对于无序向量,有以下几个重要的操作:
1.直接引用元素
对于数组,可以直接通过下标方式访问元素。为了使向量vector有类似的操作方式,对其进行重载运算符[ ]。
template <typename T> T& Vector<T>::operator[] (Rank r) const//重载下标运算符
{
return _elem[r];} //assert: 0 <= r < _size
值得注意的是,这里定义的是T类型的引用(T&),目的是使返回值为左值。只有左值才能通过类似v[0] = 1的方式修改元素。
2.查找元素
同样的,为了查找元素,要先其进行重载运算符==或!=。以下代码认为其已经进行重载。
template <typename T> //顺序查找:返回最后一个元素e的位置;失败时返回lo - 1
T& Vector<T>::operator[] (Rank r) const{ //assert: 0 <= lo < hi <= _size
while ((lo <