알고리즘/알고리즘 관련 메모장

C++ 배열/벡터 copy 와 memset

잡담연구소 2020. 12. 11. 03:55

Copy

bfs를 사용하여 visited를 확인해주다보니 배열을 고대로 복사해야할 때가 많았는데 for문을 두세번씩 쓰기가 너무 귀찮았다. 다른 스터디원이 파이썬에서 copy쓰는 거 보고 c++ 도 먼가 있을 거 같아서 찾아보았다. 

 

아래 블로그 글에 기가막히게 정리가 잘되어있다. 

보고 참고했다. 

kamang-it.tistory.com/entry/cSTLarrayvectorc%EC%97%90%EC%84%9C-%EB%B0%B0%EC%97%B4-%EB%B3%B5%EC%A0%9C%ED%95%98%EA%B8%B0

 

[c++][STL][array][vector]c++에서 copy함수로 배열, 벡터 복제하기(다차원 가능), for과 copy 비교

배열 복제의 경우 가장 간단한 방법은 for문을 사용한 방법이다. 사실 가장 확실하며 실수할 가능성도 없다. 코드가 길어질 뿐이지만 이도 함수를 사용하면 뭐 큰 차이는 없다. 속도의 이슈가 조

kamang-it.tistory.com

Memset

매번 bfs 부함수?를 실행할 때마다 int arr[4] 이런식으로 불러와주면 초기화? 모두  다 0이 될 거라고 생각했는데 아니었다.

쓰레기값이 자꾸 들어간당,,,그래서 스터디장님이 memset을 알려주셨다.

memset(arr , value , size)

  • arr : 사용할 배열의 시작 주소 
  • value:  채우고자 하는 값 
  • num: 채우고자 하는 메모리의 크기

 

memset(arr , 0 , sizeof(arr));

 

for(int i=0; i<행의크기; i++) memset(arr[i], 0, sizeof(int)* 열의 크기); 

이렇게 써도 되고 1차원이랑 똑같이 걍 써도 됨 

 

'알고리즘 > 알고리즘 관련 메모장' 카테고리의 다른 글

c++ stl SORT 사용법  (0) 2020.12.20
DFS로 순열 및 조합 구현  (0) 2020.12.17
BFS , DFS 알고리즘 - 예제풀이  (1) 2020.12.09
c++ 3일차  (0) 2020.11.13
C++ string 사용법  (0) 2020.11.09