第9章 顺序容器

三、 顺序容器操作

  1. 删除元素


    第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)

你可能感兴趣的:(第9章 顺序容器)