"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 동일한 벡터에서 요소를 밀 때 안전을 보장하는 방법은 무엇입니까?

동일한 벡터에서 요소를 밀 때 안전을 보장하는 방법은 무엇입니까?

2025-02-06에 게시되었습니다
검색:467

How to Ensure Safety When Pushing Elements from the Same Vector?

동일한 벡터에서 요소를 푸시하는 요소 : 안전 조치

vector v;
v.push_back(1);
v.push_back(v[0]);

vector v;
v.push_back(1);
v.push_back(v[0]);
, 기존 벡터 요소에 대한 참조를 무효화 할 수 있습니다. 이 문제는 다음 예에서 발생합니다.

vector v; v.push_back (1); v.push_back (v [0]);

두 번째 push_back이 재 할당을 트리거하면 v [0]에 대한 참조가 무효가됩니다. 이를 해결하기 위해 다음과 같은 접근법이 사용될 수 있습니다. v.push_back (1); v.reserve (v.size () 1); v.push_back (v [0]); How to Ensure Safety When Pushing Elements from the Same Vector?

Reserve를 호출하여 충분한 메모리를 명시 적으로 요청하여 후속 삽입 중에 재 할당이 발생하지 않도록합니다.

C 표준에 따라 동작의 동작 요소 참조와 관련하여 푸시 _back은 잠재적으로 유효하지 않은 참조로 이어질 수 있지만 결함으로 명시 적으로 정의되지 않습니다. 삽입이 다른 요소의 위치를 ​​변경하더라도 표준이 벡터 :: 인서트가 올바르게 작동하도록 요구하기 때문입니다.

릴리스 선언문 이 기사는 다음과 같이 재현됩니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3