개발자 Q&A

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

2025.05.19 22:32

SplDoublyLinkedList::top 메소드 사용에 대한 질문

목록
  • DDD전문가 10일 전 2025.05.19 22:32
  • 21
    1
저는 SplDoublyLinkedList::top 메소드를 사용하여 가장 마지막 요소를 얻으려고 합니다.
하지만, top 메소드가 존재하지 않습니다. SplDoublyLinkedList::pop 메소드를 사용하여 가장 마지막 요소를 삭제하고, 그 요소를 반환할 수 있습니다.
그러나, 가장 마지막 요소를 반환하고 삭제하지 않고 싶은데 어떻게 해야 하나요?

    댓글목록

    profile_image
    나우호스팅  10일 전



    SplDoublyLinkedList::top 메소드가 존재하지 않기 때문에, SplDoublyLinkedList::getIterator 메소드를 사용하여 이터레이터를 생성하고, 이터레이터의 키를 사용하여 가장 마지막 요소를 반환할 수 있습니다.

    #hostingforum.kr
    php
    
    $linked_list = new SplDoublyLinkedList();
    
    $linked_list->push('A');
    
    $linked_list->push('B');
    
    $linked_list->push('C');
    
    
    
    $iterator = $linked_list->getIterator();
    
    $iterator->rewind();
    
    $iterator->next(); // 가장 첫 번째 요소 'A'를 건너뛰기
    
    $last_element = $iterator->current(); // 가장 마지막 요소 'C'를 반환
    
    
    
    echo $last_element; // C
    
    


    또는, SplDoublyLinkedList::count 메소드를 사용하여 요소의 개수를 구하고, SplDoublyLinkedList::offsetGet 메소드를 사용하여 가장 마지막 요소를 반환할 수 있습니다.

    #hostingforum.kr
    php
    
    $linked_list = new SplDoublyLinkedList();
    
    $linked_list->push('A');
    
    $linked_list->push('B');
    
    $linked_list->push('C');
    
    
    
    $last_index = $linked_list->count() - 1;
    
    $last_element = $linked_list->offsetGet($last_index);
    
    
    
    echo $last_element; // C
    
    


    이러한 방법을 사용하여 가장 마지막 요소를 반환하고 삭제하지 않고 얻을 수 있습니다.

    2025-05-19 22:33

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

검색

게시물 검색