3

我正在使用向量,需要检查向量中的特定位置是否存在元素,例如myvec[7]

我需要在循环之外工作,并且能够对向量中的任何给定点执行此检查。使用向量执行此操作的最有效方法是什么?

4

2 回答 2

7

这是您正在寻找的支票:(myvec.size() >= 8)。在 C++ 中,向量中没有空白元素 - 即向量元素具有连续索引。

于 2012-04-07T17:08:03.207 回答
3

有两种方法可以做到这一点。

下一个代码示例将假设我们想要对向量 v 中的元素 v[n] 做一些事情。

方式一:

if(n<v.size()) 
    //do something with v[n]
else
    //do something else

方式二:

//do something using v.at(n) instead of v[n]

如果您尝试访问不在向量中的元素,这将引发异常。

使用哪一个?视情况而定。
如果元素不在向量中,你可以工作吗?使用第一种方法。
拥有此元素对您的代码至关重要。使用第二种方法,让 STL 为您检查它的存在,不要忘记捕获异常。

于 2012-04-07T17:29:47.020 回答