swap
[Python] swap, 두 개의 변수를 교환하는 방법
변수a = 10b = 20# a와 b를 교환a, b = b, aprint(a, b)# 출력# 20 10 또 다른 방법으론 swap 함수def swap(a, b): temp = a a = b b = temp return a, b a = 10b = 20# a와 b를 교환swap(a, b)print(a, b)# 출력# 20 10 n개 이상도 가능하다a = 10b = 20c = 30a,b,c = c,b,aprint(a,b,c)# 출력# 30 20 10 리스트arr1 = [1,2,3]arr2 = [4,5,6]arr1 , arr2 = arr2, arr1print(arr1, arr2)# 출력# [4, 5, 6] [1, 2, 3]#요소 위치변경하기arr = [1,2,3,4]arr[0],arr[1] = arr[..
C++ Copy and Swap idiom
C++에선 클래스가 리소스를 관리하고 클래스의 생성/소멸에 맞춰 리소스를 할당/해제한다. 관련된 멤버 함수와 그 역할은 아래와 같다. 생성자: 리소스를 할당한다. 복사 생성자: 리소스를 복사해온다. 복사 대입 연산자: 기존 리소스를 해제하고 리소스를 복사해온다. (C++11부터) 이동 생성자: 리소스를 가져온다. (C++11부터) 이동 대입 연산자: 기존 리소스를 해제하고 리소스를 가져온다. 소멸자: 리소스를 해제한다. Copy-and-swap idiom은 간결하면서도 강력한 예외 안정성(strong exception safety)을 보장해주는 복사 대입 연산자를 짤 수 있게 해준다. 또한 이동 대입 연산자에를 짤 때에도 유용하다. 문자열 리소스를 관리하는 간단한 클래스를 생각해보자. class Foo ..