我正在使用向量,需要检查向量中的特定位置是否存在元素,例如myvec[7]
我需要在循环之外工作,并且能够对向量中的任何给定点执行此检查。使用向量执行此操作的最有效方法是什么?
这是您正在寻找的支票:(myvec.size() >= 8)
。在 C++ 中,向量中没有空白元素 - 即向量元素具有连续索引。
有两种方法可以做到这一点。
下一个代码示例将假设我们想要对向量 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 为您检查它的存在,不要忘记捕获异常。