第9章 顺序容器

三、 顺序容器操作

  1. 删除元素


    image.png
  2. 容器操作可能使迭代器失效
  • 添加元素
    • vector/string:若存储空间重新分配→指针/引用/迭代器均失效;若没有重新分配→插入位置之后的指针/引用/迭代器/失效
    • deque:插入到首尾位置之外→指针/引用/迭代器均失效;首位位置插入→迭代器失效,指向存在元素的引用和指针不失效。
    • list/forward_list:指针/引用/迭代器均有效
  • 删除元素→指向被删除元素的指针/引用/迭代器均失效
    • vector/string:指向被删除元素之前→指针/引用/迭代器均失效;指向被删除元素之后→指针/引用/迭代器均失效
    • deque:删除到首尾位置之外→指针/引用/迭代器均失效;删除尾元素→尾后迭代器失效,其他迭代器、引用和指针不失效;删除首元素→其他迭代器、引用和指针不受影响
    • list/forward_list:指向其他位置的指针/引用/迭代器仍然有效
  • 使用失效的迭代器、指针、引用是严重错误管理迭代器
  • 编写改变容器的循环程序→每次循环都更新迭代器、引用和指针
  • 不要保存.end()返回的迭代器,而是每次调用.end()

五、 额外的string操作

  • 数值转换
  • to_string(val):返回val的string表示,val可以是任何算数类型
  • stoi(s,p,b):返回s的起始子串(表示整数内容)的数值,返回值类型为int。b表示转换所用基数,默认为10。p是size_t指针,用来保存s中第一个非数值字符的下标,p默认为0。类似的还有stol()、stoul()。。。
  • stof(s,p) :返回值类型为浮点数
  • string搜索操作
  • s.find(args),查找s中args第一次出现的位置
  • s.rfind(args),查找s中args最后一次出现的位置
  • 修改string的操作
  • s.insert(pos,args)
  • s.erase(pos,len)
  • s.assign(args)
  • s.append(args)
  • s.replace(range,args)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容