추가 후 30 초 이내에 연결된 목록에서 항목을 제거하는 방법은 무엇입니까? 너 어떤 생각이라도 해봐? 이 질문은 인터뷰에서 질문을 받았습니다.추가 후 30 초 이내에 연결된 목록에서 항목을 제거하는 방법?
답변
'내'라고 말하면 언제든지 사용할 수 있습니까? 또는 30 초가 경과하면 항목을 만료하려는 경우 타이머를 어딘가에 두어야합니다.
고정 된 시간 (만료)에 항목을 이동시키는 대기열을 만들 수 있습니다.
가비지 수집기처럼 계속 대기열을 이동할 수 있습니다.이 경우 제거가 불확실합니다.
또는 항목을 대기열에 추가 할 때 시작되는 항목 자체에 타이머를 넣을 수 있습니다. 타이머는 시간이 만료되면 목록에 신호를 보냅니다. 그런 다음 목록에서 항목을 제거 할 수 있습니다.
std::list<int> l;
l.push_back(42);
l.pop_back();
당신이 매우 느린 컴퓨터가 없다면,이 30 초 제한 시간 내에에서 마무리해야한다.
우선, 시간을 측정 할 수 있어야합니다. std :: time (NULL)을 사용하고 필요한 시간이 지날 때까지 바쁜 루프를 수행 할 수 있지만 부적절한 것 같습니다. 주먹으로 CPU를 작동시키고 있습니다. 둘째, 많은 의미있는 작업을 수행 할 수 없습니다. 당신은 기다리고 있습니다).
다음으로 가장 좋은 것은 스레드를 사용하는 것입니다. 다른 스레드가 의미있는 작업을 수행하는 동안 ellapse 시간까지 대기하고 목록에서 요소를 제거하는 스레드를 만듭니다. C++ 03 표준은 쓰레드로 작업하는 일반적인 방법을 정의하지 않습니다 (사용중인 스레딩 라이브러리의 perticular를 찾아야합니다). C++ 11 표준은 자체 메모리 모델을 정의하고 스레딩 라이브러리를 atnadard 라이브러리 (STL)의 일부로 제공합니다.
난 당신이 "추가 후 30 초 이내에"무슨 뜻인지 모르겠지만 나는 두 가지 가능성을 참조하십시오, 당신은 가능한 한 빨리 < 30 초를이 작업을 수행 할 수
을하는 경우
std::list<type> my_list; my_list.push_back(element); my_list.pop_back();
당신은 당신이 단순히 30 초 후에 다음 요소를 추가 제거 할 수있는 경우에 가능한 한 30 초이 가까이하고 싶지 :
을 당신은 단순히 그것을 제거 후 요소를 추가 할 수 있습니다#include <unistd.h> // push back element here sleep(30); // pop back element here
어떤 수면 기능을 말하는 겁니까? 나는 C++에서 표준적인 것을 알지 못했다. – Attila
@Attila 그것은 posix 함수 다. 그래서 모든 유닉스 계열의 배포판에 있어야한다. 맨 페이지 - http : //linux.die가있다.net/man/3/sleep – paulrehkugler
- 1. Clojure에서 목록에서 항목을 제거하는 방법
- 2. 30 초 지연 방법
- 3. 사용자 정의 baseadapter로 목록에서 항목을 추가/제거하는 방법
- 4. 자바에서 연결된 목록에서 개체를 제거하는 방법은 무엇입니까?
- 5. 최대 절전 모드 목록에서 항목을 제거하는 방법
- 6. 목록에서 세미 중복 항목을 제거하는 고성능 방법
- 7. 목록에서 항목을 제거하는 BIF는 무엇입니까
- 8. 목록에서 항목을 제거하는 방법은 무엇입니까?
- 9. Python의 목록에서 항목을 추가/제거하는 데 걸리는 작업
- 10. 30 초 이내에 Tomcat Windows 서비스를 종료하는 방법 (또는 SCM에서 더 많은 시간을 요청하십시오.)
- 11. 어떻게 30 초 후에
- 12. FIttereds에서 30 일 이내에 덮어 쓰기
- 13. 목록에서 목록 항목을 삭제 한 후 삭제합니다.
- 14. 목록에서 객체를 제거하는 방법
- 15. 왜이 방법으로 목록에서 항목을 제거하는 것이 불가능합니까?
- 16. PHP 목록에서 상위 항목을 제거하는 상자 선택
- 17. 그 목록에서 빠진 항목을 제거하는 방법은 무엇입니까?
- 18. 3 시간이 서로 30 분 이내에 있는지 가장 손쉬운 방법
- 19. C의 연결된 목록에서 삭제 후 표시
- 20. JLabel 텍스트가 1 초 이내에 사라졌습니다.
- 21. 목록 통합을 사용하여 목록에서 중복 항목을 제거하는 방법?
- 22. 다른 사람이 존재하는 목록에서 항목을 제거하는 확장 방법
- 23. 드롭 다운 목록에서 선택한 항목을 제거하는 방법 (Jquery 사용)
- 24. Android에서 Robotium을 사용하여 목록에서 항목을 제거하는 방법을 테스트하는 방법
- 25. 서버에서 프로세스를 만드는 방법 데이터베이스가 삽입 된 후 x 초 후에 항목을 확인하십시오.
- 26. TTLauncher/Three20에서 항목을 제거하는 방법?
- 27. 목록에서 중복 요소를 제거하는 가장 효율적인 방법
- 28. 30 초 후에 MYSQL 데이터베이스를 업데이트하십시오.
- 29. MySQL 30 분 47 초 (30 분 47 초)와 같은 시간에 작업을 수행하는 방법
- 30. 목록에서 항목을 선택한 후 패널에 레이블 설정
... 뭐? –
나는 overclocking 및 water-cooling없이 나의 상자에 이것을 달성 할다는 것을 상당히 확신한다. 어쩌면 더 많은 조건을 추가해야할까요? 목록은 30 초 동안 '살았'면 자발적으로 항목을 제거해야합니다. 내부 스레드에 의해? –