仅通过迭代器删除STL-container元素

时间:2017-01-27 00:26:40

标签: c++ stl iterator

有没有办法从you should get the image and make it into bitmap at first. Once you have the bitmap of that image use the following : WallpaperManager wallpaper = WallpaperManager.getInstance(getApplicationContext()); try{ wallpaper.setBitmap(yourBitmap); catch(IOException e){ e.printStackTrace(); } } 容器中删除元素(be STLlist,...)只能通过指向要删除的元素的迭代器,但没有提供它所在的容器对象(即没有直接使用容器成员函数vector

this question的后续行动)

1 个答案:

答案 0 :(得分:2)

不,这是不可能的。

想象一下,为了让标准提供一种方法,必须要发生什么。 std::vector<T>::iterator不能简单T*。相反,它必须包含足够的信息,以便库能够“找到”它所属的向量,例如指向向量本身的指针。因此,如果标准强制要求删除仅给定迭代器的元素,则会强制标准库增加开销,这会减慢容器的所有用户的速度。