Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++ STL deque::assign() 함수 완벽 가이드 – 사용법과 예제

이 글에서는 C++ STL에서 deque::assign() 함수가 어떻게 동작하는지 살펴보겠습니다.

Deque(덱)는 Double Ended Queue, 즉 양방향 큐를 의미합니다. 앞과 뒤 양쪽에서 모두 요소를 삽입하거나 삭제할 수 있는 컨테이너입니다.

C++에서 deque::assign()은 내장 함수로, deque 컨테이너에 새로운 값을 할당하는 데 사용됩니다. 이 함수를 호출할 때마다 기존에 저장되어 있던 값들을 모두 대체하며, 새로 할당되는 값에 맞춰 컨테이너의 크기도 자동으로 조정됩니다.

문법(Syntax)

deque::assign()의 문법은 다음과 같습니다.

dequename.assign(<int> size, <int> val)

매개변수(Parameters)

이 함수는 두 개의 매개변수를 받습니다.

  • size: deque 컨테이너에 할당할 요소의 개수
  • val: deque 컨테이너에 채워 넣을 값

또한 sizeval 대신 반복자(iterator)를 매개변수로 전달하여 시작 지점과 끝 지점을 지정할 수도 있습니다. 두 방식 모두 아래 예제에서 확인할 수 있습니다.

반환값(Return Value)

이 함수는 별도의 반환값이 없습니다.

예제

Input: dq.assign(5, 1)
Output: deque elements are: 1 1 1 1 1
Input: dq.assign(5, 2)
dq1.assign(dq.start()+2, dq.end())
Output: deque elements are: 2 2 2 2 2
deque elements are: 2 2 2

설명: deque dq에는 5개의 요소(2 2 2 2 2)가 들어 있습니다. 반면 dq1은 dq의 처음 두 요소를 건너뛰고 세 번째 요소부터 끝까지 복사했기 때문에 3개의 요소(2 2 2)만 갖게 됩니다.

크기(size)와 값(value)으로 할당하기

예제 코드

#include <bits/stdc++.h>
using namespace std;
int main() {
    deque<int> deq;
    // 값 1을 5개 할당
    deq.assign(5, 1); // 여기서 5는 크기, 1은 값
    cout << "deque elements are: ";
    for (auto it = deq.begin(); it != deq.end(); it++)
    cout << *it << " ";
    return 0;
}

실행 결과

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

deque elements are: 1 1 1 1 1

반복자(iterator)로 할당하기

예제 코드

#include <bits/stdc++.h>
using namespace std;
int main() {
    deque<int> deq;
    // 값 2를 5개 할당
    deq.assign(5, 2);
    cout << "deque elements are: ";
    for (auto it = deq.begin(); it != deq.end(); it++)
    cout << *it << " ";
    deque<int> deq1;
    // 세 번째 위치부터 마지막까지의 모든 요소를 deq1에 할당
    deq1.assign(deq.begin() + 2, deq.end());
    cout << "\ndeque1 elements are: ";
    for (auto it = deq1.begin(); it != deq1.end(); it++)
    cout << *it << " ";
    return 0;
}

실행 결과

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

deque elements are: 2 2 2 2 2
deque1 elements are: 2 2 2

정리

deque::assign() 함수는 기존 내용을 모두 지우고 새 값을 한 번에 할당하고 싶을 때 유용하게 사용됩니다. 크기와 값으로 직접 지정하는 방법과, 다른 컨테이너의 특정 범위를 반복자로 지정하는 방법 두 가지를 상황에 맞게 활용하면 됩니다.