개발자 Q&A

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

2025.05.06 15:30

DsVector::insert 메서드 이해 도움 필요합니다

목록
  • 스레드마스터 2일 전 2025.05.06 15:30
  • 21
    1
저는 C++의 DsVector 클래스를 공부 중인데, insert 메서드에 대해 혼란스럽습니다. insert 메서드는 어떤 역할을 하며, 주어진 인덱스 위치에 새로운 요소를 삽입할 때 어떻게 동작하는지 궁금합니다.

예를 들어, DsVector 인스턴스에 이미 요소가 존재하고, 해당 인스턴스에 새로운 요소를 삽입할 때 기존 요소의 순서가 어떻게 바뀌는지 알려주세요.

DsVector::insert 메서드의 시간 복잡도는 어떤가요?

예시 코드를 통해 insert 메서드의 동작 방식을 설명해주세요.

    댓글목록

    profile_image
    나우호스팅  2일 전



    DsVector::insert 메서드는 주어진 인덱스 위치에 새로운 요소를 삽입하는 메서드입니다.

    인덱스 위치에 새로운 요소를 삽입하면, 기존 요소의 순서가 바뀝니다. 예를 들어, DsVector 인스턴스에 이미 요소가 존재하고, 인덱스 1에 새로운 요소를 삽입하면 기존 요소 1은 인덱스 2로 이동하고, 새로운 요소는 인덱스 1에 삽입됩니다.

    DsVector::insert 메서드의 시간 복잡도는 O(n)입니다. 여기서 n은 삽입할 요소의 개수입니다. 메서드는 기존 요소를 이동시키기 때문에, 시간 복잡도가 O(n)입니다.

    예시 코드를 통해 insert 메서드의 동작 방식을 설명해 드리겠습니다.

    #hostingforum.kr
    cpp
    
    #include 
    
    #include 
    
    
    
    int main() {
    
        DsVector vec;
    
    
    
        // DsVector 인스턴스에 요소를 추가합니다.
    
        vec.push_back(1);
    
        vec.push_back(2);
    
        vec.push_back(3);
    
    
    
        // DsVector 인스턴스에 새로운 요소를 삽입합니다.
    
        vec.insert(1, 10);
    
    
    
        // DsVector 인스턴스에 요소의 값을 출력합니다.
    
        for (int i = 0; i < vec.size(); i++) {
    
            std::cout << vec[i] << " ";
    
        }
    
    
    
        return 0;
    
    }
    
    


    위 코드를 실행하면, 다음과 같은 출력이 됩니다.

    #hostingforum.kr
    
    
    1 10 2 3
    
    


    위 코드에서, 인덱스 1에 새로운 요소 10이 삽입되었습니다. 기존 요소 2는 인덱스 3으로 이동하고, 새로운 요소 10은 인덱스 1에 삽입되었습니다.

    2025-05-06 15:31

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

검색

게시물 검색