2012-04-07 59 views
3

我正在與一個矢量工作,需要檢查是否存在在矢量的特定點的元件存在的元件,如myvec[7]C++檢查,如果在矢量

我需要一個循環外工作,並能夠對向量中的任何給定點執行此檢查。用矢量做這件事最有效的方法是什麼?

回答

7

這是您正在查找的支票:(myvec.size() >= 8)。在C++中,矢量中沒有空白元素 - 即矢量元素具有連續的索引。

2

有兩種方法可以做到這一點。

接下來的代碼示例將假定我們想要做與元v [n]的東西在向量v

方式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檢查它的存在,並且不要忘記捕獲異常。