std::set
에는 int
값이 포함되어 있습니다. 이제 반복자를 사용하여 set
이 value
인 지 여부를 확인합니다. 컴파일 ++std :: iterator없이 검색 C++
없는 일치를 G를 사용할 때
std::set<int> fdsockets; void myfunc(int fd) { if(fdsockets[fd] != fdsockets.end()) { // my code } }
하지만 난이 오류가 있습니다
하지만 내 응용 프로그램은 내가 그런 일을 할 수있는, 매우 ofter이 검색을 사용하고 반복자가 너무 느려 사용하여 검색 '연산자 []'in 'fdsockets [fd]'
아마도 std::set
대신 사용할 수 있습니까?
감사합니다.
http : //en.cppreference. –
집합에 대한 루프상에서'find()'를 선호하는 이유는'find()'가 O (log (N)) 알고리즘이라는 것입니다. O (N * log (N * log (N * log (N * log (N * log) 알고리즘)의 알고리즘이라고 생각됩니다.) 연산자 인 ++()가 연관 컨테이너에 대해 꽤 복잡하기 때문에 루프가 O (N)보다 나쁩니다. –
std :: set에는 O (log (n)) 인 find() 메소드가 있습니다 –