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

C++ swap() 함수 완벽 정리: 두 변수의 값을 교환하는 방법

C++에서 swap() 함수는 두 변수에 저장된 값을 서로 맞바꾸는(교환하는) 데 사용되는 함수입니다. 이 함수를 활용하면 별도의 임시 변수(third variable)를 직접 선언하지 않고도 두 값을 간편하게 교환할 수 있습니다.

swap() 함수의 기본 문법

void swap(int variable_name1, int variable_name2);

값 전달 방식(Call by Value)의 특징

swap() 함수에 변수를 값으로 전달하면, 함수 내부에서는 두 값이 교환되지만 실제 원본 변수의 값은 그대로 유지된다는 점에 유의해야 합니다. 즉, 함수가 종료된 후에는 원래 값이 그대로 남아 있습니다.

다음은 C++에서 swap() 함수를 사용한 예제입니다.

예제 1: 표준 swap() 함수 사용

#include <bits/stdc++.h>
using namespace std;
int main() {
    int x = 35, y = 75;
    printf("Value of x :%d",x);
    printf("\nValue of y :%d",y);
    swap(x, y);
    printf("\nAfter swapping, the values are: x = %d, y = %d", x, y);
    return 0;
}

실행 결과

Value of x :35
Value of y :75
After swapping, the values are: x = 75, y = 35

참조 전달 방식(Call by Reference)으로 값 교환하기

실제 변수의 값까지 영구적으로 교환하고 싶다면, 변수를 참조(&)로 전달하는 것이 좋습니다. 참조로 전달하면 함수 내부에서 수행한 교환이 호출한 곳의 실제 변수에도 그대로 반영됩니다.

다음은 참조를 이용해 두 값을 교환하는 사용자 정의 함수 예제입니다.

예제 2: 참조를 이용한 SwapValue() 함수

#include <stdio.h>
void SwapValue(int &a, int &b) {
    int t = a;
    a = b;
    b = t;
}
int main() {
    int a, b;
    printf("Enter value of a : ");
    scanf("%d", &a);
    printf("\nEnter value of b : ");
    scanf("%d", &b);
    SwapValue(a, b);
    printf("\nAfter swapping, the values are: a = %d, b = %d", a, b);
    return 0;
}

실행 결과

Enter value of a : 8
Enter value of b : 28
After swapping, the values are: a = 28, b = 8

정리

C++의 swap() 함수는 두 변수의 값을 손쉽게 교환할 수 있는 유용한 도구입니다. 다만 값 전달 방식을 사용하면 원본 변수는 변경되지 않고, 참조 전달 방식을 사용해야만 실제 변수의 값이 교환된다는 점을 기억하세요. 상황에 맞게 적절한 전달 방식을 선택하면 더 안전하고 효율적인 코드를 작성할 수 있습니다.