用std::vector
调用vector.back()
和vector[vector.size() - 1]
有什么区别吗?
vector.back()
更易于读写。此外,更多的容器提供c.back()
而不是c[c.size() - 1]
,这对于泛型代码很重要。
在调试运行时中,两者都有可能被困在空容器上,生成的代码以及它们在使用优化时的性能也不会有很大差异。
>vector.back()
是一个函数调用,编写起来更短:它更简单。vector[vector.size() - 1]
是两个函数调用和一个减法,写起来更长:它更复杂。
在行为上,它们对于std::vector
是一样的。但是back
更通用,可以与所有标准双向容器一起使用(std::forward_list
是唯一不支持它的标准容器(。operator[]
仅受随机访问容器支持。