介绍算法与算法复杂度,引入一些基础算法,这些算法不需要很详细的推导过程,虽然与后续的内容有关联,但大都可作为独立主题进行分类与学习。

本节的另一个重点是STL应用,所谓工卻善其事,必先利其器,STL容器与算法就是解决算法问题的利器,必须对STL应用非常熟悉,才可以在写代码时得心应手,事半功倍。

STL应用

vector总结

  1. 注意遍历时begin()/end()和rbegin()/rend()迭代器始终为++操作。
  2. 注意resize()和reserve()的区别,size()和capacity()的区别。
  3. front()/back()返回的是引用,可直接作为左值来用。
  4. insert()是在指定位置之前插入,可批量插入n个元素或是一个迭代器的区间,如下:

    insert(position, val);
    insert(position, n, val);
    insert(position, first, last);
  5. erase()删除指定位置的元素,或是删除一个区间的元素,当删除区间时,不包括区间结束位置的元素,如下:

    erase(position);
    erase(first, last);


  • 无标签