2.插入函数的理解

 1 inline Rank Vector<T>::insert(Rank r, T const & e)
 2 {
 3     expand();
 4     for (int i = _size; i != r; i--) {
 5         _elem[i] = _elem[i - 1];
 6     }
 7     _elem[r] = e;
 8     _size++;
 9     return r;
10 }

2.1.这里的for语句,为什么i要递减?

我们元素实际往后移动的的时候,是最后一个元素先移动,那么最后一个元素应该是首先操作的元素,这样就避免了从目标秩开始操作导致元素覆盖的问题。

2.2.默认作为末元素插入的写法

1 Rank insert(T const& e) { return insert(_size, e); }

 

posted @ 2019-06-19 20:24  Royzzzzz  阅读(319)  评论(0)    收藏  举报