Ran cppcheck na mojej bazy kodu i otrzymała następujący błąd:Dlaczego nie mogę użyć operatora <on 'std :: deque'?
Dangerous iterator comparison using operator< on 'std::deque'.
Ale iterator danej deque jest przypadkowa iterator dostępu i iteratory o dostępie swobodnym wspierać operatorów nierówności. Co daje?
przykład:
#include <deque>
int main()
{
std::deque<int> d;
std::deque<int>::iterator di1 = d.begin();
std::deque<int>::iterator di2 = d.end();
if (di1 < di2)
{
// (error) Dangerous iterator comparison using operator< on 'std::deque'.
}
return 0;
}
Edycja: Błąd ten został przedstawiony i mocowany cppcheck ticket #5926.
Upewnij się, że porównanie dwóch iteratory z tego samego pojemnika. Nie wiem, jak daleko sięga to cppcheck, więc może zawsze narzekać z powodu tej możliwości. – ghostofstandardspast
Pokaż linię, która uruchamia ten błąd. – dasblinkenlight
Potrzebujemy zobaczyć przykładowy kod, aby pomóc w odpowiedzi na pytanie: –