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 【问题描述】:

假设我有一个名为myVecstd::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() 没有改变?

C++ std::vector::size() 改变它的状态

比较处理 int 和 std::vector::size_type