13. vector与string相较于动态数组的优越性

如果我们决定使用new进行动态分配,那么我们必须肩负以下责任:

  1. 有new必然要delete
  2. new[]必然要对应着delete[]
  3. 避免重复delete

实际上上述操作总是很麻烦,所以我们应该尽可能使用vector或者string来代替动态数组。另外,这两大容器可以配合STL算法,效果绝佳。

事实上除了在多线程中使用引用计数字符串会导致性能下降外,其他情况下vector与string都具有绝对优势。就算这样,我们也可以试图关闭引用计数,或者使用vector<char>,尽管那失去了一些string的专有成员函数。