我正在使用矢量,需要检查矢量中特定位置是否存在元素,如myvec[7]
我需要在循环之外工作,并能够对向量中的任何给定点执行此检查。使用向量执行此操作的最有效方法是什么?
答案 0 :(得分:7)
这是您要查找的支票:(myvec.size() >= 8)
。在C ++中,向量中没有空白元素 - 即向量元素具有连续索引。
答案 1 :(得分:2)
有两种方法可以做到这一点。
接下来的代码示例将假设我们想要在向量v
中对元素v [n]执行某些操作方式1:
if(n<v.size())
//do something with v[n]
else
//do something else
方式2:
//do something using v.at(n) instead of v[n]
如果您尝试访问不在向量中的元素,则会引发异常。
使用哪一个?取决于案件。
如果元素不在向量中,你能工作吗?使用第一种方法
拥有此元素对您的代码至关重要。使用第二种方法,让STL为您检查它的存在,并且不要忘记捕获异常。