如何实现擦除方法
How can i implement the erase method?
void reserve( int newCapacity ){
Object *oldArray = objects;
int numToCopy = newCapacity < theSize ? newCapacity : theSize;
newCapacity += SPARE_CAPACITY;
objects = new Object[newCapacity];
for( int k=0; k < numToCopy; k++ )
objects[k] = oldArray[k];
theSize = numToCopy;
theCapacity = newCapacity;
delete [ ] oldArray;
}
我如何实现擦除方法,可能使用 reserve()?
iterator erase ( iterator position ){
if (position + 1 != end())
copy(position + 1, finish, position);
--finish;
return position;
}
似乎应该这样做:
iterator erase ( iterator position ) {
copy(position+1, end(), position);
resize(size()-1);
return position;
}
iterator erase ( iterator first, iterator last ) {
copy(last, end(), first);
resize(size()-(last-first);
return first;
}
相关文章:
- 为什么擦除方法会影响结束方法
- C++:std::ofstream 方法 open() 在第二次迭代时擦除打开的 ifstream 文件
- 矢量擦除方法是否需要类才能具有 = 运算符?
- 键入擦除成员函数指针的"right"方法是什么?
- 编译错误 std::vector<std::shared_ptr<T>>迭代器和擦除方法
- 无法使用擦除方法删除矢量的最后一个元素
- 类型擦除和一种模板方法模式
- 矢量中的擦除方法
- 是否将std矢量重新分配到默认的构造函数向量是擦除的好方法
- 擦除范围从std :: vector删除向量的最佳方法
- 有没有一种方法可以防止在STL无序映射上插入或擦除
- 在没有c++11的情况下,擦除映射中最后插入的元素的正确方法是什么
- 矢量擦除方法失败
- 使用擦除方法重置循环内的迭代器
- std::列表弹出和擦除方法无法销毁已删除的项目
- C++类型擦除,请使用 std::function 捕获单个类的多个方法
- 在维护顺序的同时从std::vector中删除/擦除重复元素的方法
- 实现任意类型擦除的小缓冲区优化的简单方法(如std::function.)
- 在遍历集合时从集合中擦除的最有效方法
- 如何实现擦除方法