std_vector使用注意事项

来源:互联网 发布:深圳市大数据研究院 编辑:程序博客网 时间:2024/05/23 15:17

std::vector使用注意事项

  1. std::vector.end()并不指向最后一个元素,而是指向最后一个元素后面的一个内存单元,这里单元里并没有存储任何数据,因此,对该单元进行操作时就会出现范围溢出的错误。

    要想调用vector的最后一个元素,则要使用vector.end()-1,才能调用成功。

  2. 如果要对vector中的元素进行删除有两种方法

    • vector.erase(vector.begin(), vector.end()-1)。使用这种方法可以改变vector的size和capacity
    • vector.clear()。使用这种方法可以改变vector的size,却无法改变vector的capacity。其中capacity是vector所占的内存大小。如果要删除这些内存,可以使用vector().swap(x)进行删除。

参考内容:

  1. http://www.cplusplus.com/reference/vector/vector/clear/
  2. http://stackoverflow.com/questions/1525535/delete-all-items-from-a-c-stdvector
0 0
原创粉丝点击