2
std::fill
을 사용하여 비 POD 유형의 배열을 초기화 할 수 있습니까?첫 번째 초기화가 가능한 비 POD 배열에 대한 std :: fill_n?
std::fill
은 operator=
을 사용하여 배치를 복사하지 않는 배열을 초기화합니다. 그러나 할당 연산자는 실제로 볼 수있는 한 초기화되지 않은 공간에서 호출 될 때 현재 메모리를 해제 할 기회가 없습니다.
예 :
struct NonPod
{
std::string myStr;
};
NonPod arr[10];
NonPod prototype;
NonPod * ptr = &arr[0];
std::fill_n(ptr, 10, prototype);
'arr'을'NonPod arr [10];으로 선언하지 않은 이유가 있습니까? –
어리 석음, 나는 짐작한다 :) – Manuel