std::Vector가 push_back()에서 객체를 복사합니까?
Valgrind를 사용한 조사에 따라 사용자는 std::Vector가 push_back()을 생성한다고 결론지었습니다. push_back()을 수행할 때 객체의 복사본. 이는 다음 질문을 제기합니다:
복사하지 않고 std::Vector 참조나 포인터를 저장할 수 없습니까?
불행히도 대답은 '예'입니다. std::Vector::push_back()은 설계된 대로 인수로 전달된 객체의 복사본을 생성하고 이를 벡터 내에 저장합니다.
복사를 피하는 대안:
원하는 동작이 복사본 대신 포인터나 참조를 저장하는 것이라면 std::Vector
주의:
포인터나 참조를 사용할 때 참조된 개체가 전체에서 유효한지 확인하세요. 벡터의 수명. RAII(Resource Acquisition Is 초기화)를 활용하는 스마트 포인터를 사용하면 이 문제를 효과적으로 해결할 수 있습니다.
위 내용은 std::Vector는 Push_back()에서 객체를 복사합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!