我具有下面給出(在C++)的形式的矢量:通過矢量搜索問題?
vector<pair<int,int> > u;
現在,當u.first的第一個元素變成等於12然後我想從環斷裂。我使用下面的代碼是:
while(1){
if((find(u.begin().first, u.end().first, 12)!=u.end().first))
{
break;
}
}
然而,它給我的錯誤
'unable to resolve identifier first'
James的答案是很好的解決方法。我會指出其他一些事情。其一,請注意'begin()'和'end()'返回迭代器類型,所以'.'對它們無效。二,即使你*能*操作它們,'end()'不會引用最後一個元素;它指的是超出*的一個位置,因此除了作爲終止符以外永遠無法使用。一個'vector'包含特殊的非迭代器方法,名爲'front()'和'back()',當你想直接檢查值時很有用。 (這只是供參考;在這種情況下,你無法真正地參考元素;請參閱詹姆斯的答案。) – 2012-07-10 05:45:49
如果查找返回false而成爲無限,則很危險。 – PersianGulf 2012-08-17 15:49:08