개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.28 01:57

Event::delTimer에 사용되는 Timer ID가 중복된 경우

목록
  • GCP전문가 5일 전 2025.05.28 01:57
  • 16
    1
제가 Event::delTimer를 사용하여 타이머를 삭제하는 코드를 작성중인데요, Timer ID가 중복된 경우 어떻게 처리해야 하는지 궁금합니다.

Event::delTimer를 호출할 때 Timer ID를 고유값으로 설정하여 중복을 피하려고 하지만, 중복된 Timer ID가 발생할 수 있는 경우를 대비하여 처리 방법을 알려주세요.

예를 들어, Timer ID가 1인 타이머를 삭제하고, 그 후에 다시 Timer ID가 1인 새로운 타이머를 생성하는 경우, 이전에 삭제된 타이머가 다시 생성되는지 궁금합니다.

Event::delTimer를 사용하여 중복된 Timer ID를 처리하는 방법을 알려주세요.

    댓글목록

    profile_image
    나우호스팅  5일 전



    Event::delTimer를 호출할 때 Timer ID를 고유값으로 설정하여 중복을 피하는 것이 좋습니다. 하지만 중복된 Timer ID가 발생할 수 있는 경우를 대비하여 처리 방법을 알려드리겠습니다.

    Event::delTimer는 Timer ID를 기반으로 타이머를 삭제하는 함수입니다. 만약 Timer ID가 중복된 경우, 이전에 삭제된 타이머가 다시 생성되지 않도록 하기 위해서는 Timer ID를 관리하는 메커니즘을 구현해야 합니다.

    예를 들어, Timer ID를 관리하는 해시 테이블을 사용할 수 있습니다. Timer ID를 해시 테이블에 저장하고, Event::delTimer를 호출할 때 해시 테이블에서 해당 Timer ID를 삭제합니다. 만약 Timer ID가 중복된 경우, 해시 테이블에서 해당 Timer ID가 존재하지 않으면 새로운 타이머를 생성할 수 있습니다.

    또한, Event::delTimer를 호출할 때 Timer ID를 삭제한 후에 해시 테이블에서 해당 Timer ID를 삭제하여 중복을 피할 수 있습니다.

    예제 코드는 다음과 같습니다.

    #hostingforum.kr
    cpp
    
    #include 
    
    
    
    // Timer ID를 관리하는 해시 테이블
    
    std::unordered_map timerIds;
    
    
    
    void createTimer(int id) {
    
        // Timer ID가 중복된 경우, 이전에 삭제된 타이머가 다시 생성되지 않도록 하기 위해 해시 테이블에서 해당 Timer ID가 존재하는지 확인합니다.
    
        if (timerIds.find(id) == timerIds.end()) {
    
            // Timer ID가 중복되지 않으면 새로운 타이머를 생성합니다.
    
            // ...
    
            timerIds[id] = true; // Timer ID를 해시 테이블에 저장합니다.
    
        }
    
    }
    
    
    
    void deleteTimer(int id) {
    
        // Timer ID를 삭제합니다.
    
        // ...
    
        timerIds.erase(id); // 해시 테이블에서 해당 Timer ID를 삭제합니다.
    
    }
    
    


    이러한 방법으로 Timer ID를 관리하여 중복을 피할 수 있습니다.

    2025-05-28 01:58

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 24,493건 / 59 페이지

검색

게시물 검색