C++
fill vs fill_n vs memset
(ꐦ •᷄ࡇ•᷅)
2025. 1. 20. 11:16
1. std::fill
특정 값으로 지정된 범위 전체를 채운다.
std::fill(first, last, value);
- first, last: 값을 채울 범위의 시작과 끝을 나타내는 반복자.
- value: 채울 값.
2. std::fill_n
반복자 시점에서 지정된 개수만큼 값을 채운다. 채울 요소의 개수가 명확히 정해져 있을 때 유용하다.
std::fill_n(first, n, value);
- first: 채우기 시작할 반복자.
- n: 값을 채울 요소의 개수.
- value: 채울 값.
3. std::memset
메모리 블록을 특정 바이트 값으로 채운다. 원시 배열이나 메모리 버퍼를 초기화하거나 메모리를 지울 때 사용한다. 메모리를 바이트 단위로만 다루기 때문에 조심히 사용해야 한다.
std::memset(ptr, value, num);
- ptr: 메모리 블록의 시작 주소
- value: 채울 바이트 값 (주로 0 또는 특정 문자 값).
- num: 채울 바이트 수
타입 안정성이 중요한 코드에서는 std::fill이나 std::fill_n을 사용하는 것이 좋다.