std::vector size()-1 是不是总是给出最后一个元素的索引?
Posted
技术标签:
【中文标题】std::vector size()-1 是不是总是给出最后一个元素的索引?【英文标题】:Does std::vector size()-1 ALWAYS give the index of the last element?std::vector size()-1 是否总是给出最后一个元素的索引? 【发布时间】:2014-07-24 09:52:05 【问题描述】:假设我有一个名为myVec
的std::vector
。
我不知道它会达到的确切大小,所以我只使用myVec.push_back(...)
。
我可以相信在我 push_back 之后,size()-1 会给我最后一个元素的索引吗? 谢谢。
【问题讨论】:
是的,iff你使用了push_back
。
这就是为什么为了安全使用迭代器,而不是使用索引来访问向量中的元素。
【参考方案1】:
对于非空向量是的,size()-1
是最后一个元素的索引。
【讨论】:
【参考方案2】:您有两个不同的问题。在你问的标题中:
std::vector size()-1 是否总是给出最后一个元素的索引?
没有。如果向量为空,它不会给出最后一个元素的索引。
我可以相信在 push_back 之后,size()-1 会给我最后一个元素的索引吗?
是的,如果向量不为空,那么size() - 1
保证是最后一个元素的索引。
【讨论】:
是的,感谢您指出这一点...我的意思是仅在非空向量和 push_backs 之后,但我可以看到这个问题可能会产生误导。以上是关于std::vector size()-1 是不是总是给出最后一个元素的索引?的主要内容,如果未能解决你的问题,请参考以下文章
std::vector 不是 push_back 值到我的向量中吗? C++
为啥 std::vector max_size() 函数会返回 -1?
std::size_t 还是 std::vector<Foo>::size_type?
为啥 std::vector 允许使用 [] 分配,但 size() 和 capacity() 没有改变?