vector.back() 和 vector[vector.size() - 1] 之间的区别?
Difference between vector.back() and vector[vector.size() - 1]?
用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[]
仅受随机访问容器支持。
相关文章:
- vector.back() 和 vector[vector.size() - 1] 之间的区别?
- 将向量之间的数字放在另一个向量之间<vector>>如果两个数字的差值为 1
- 计算两个迭代器之间的距离时"Vector Iterators Incompatible"
- 如果我在下面的代码中使用 list 而不是 vector,为什么在我尝试在迭代器之间执行减法的行中编译失败?
- 在线程之间复制 std::vector 而不锁定
- 与 __m256i 和 std::vector <uint32_t>之间的转换
- C++ std::vector 创建对象然后添加对象与在向量中创建对象之间的区别?
- std :: vector用作堆栈和std :: stack之间是否存在任何复杂性差异
- C++:快速/并行计算两个"std::vector<double>"向量之间的L1距离
- 使用Isringstream和struct/vector在给定的数据之间建立连接
- vector.size()= 0和vector.empty()之间是否有区别
- std::vector和llvm::SmallVector之间有什么区别?什么时候用哪一个
- 当编译器看到 std::vector<Typo> 和 std::vector<struct 拼写错误时发出的诊断之间的差异背后的理由是什么>
- 包含:stdafx.h 和 <vector> VisualStudio 2012 C++ 之间的冲突(错误 C2953:已定义类模板)
- std::vector::front() 和 begin() 之间的区别
- vector::p ush_back 和 string::p ush_back 之间的区别
- 使用 std::vector 和 include <vector>之间的区别
- 在std::list和std::vector之间进行选择
- 在vector中的vector之间移动指针会导致vector迭代器不兼容
- FlasCC:Vector 之间的互操作。<Number> 和双倍[]