> 백엔드 개발 > C++ > 본문

`std::Vector`의 용량을 줄이는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-10-29 03:07:30
원래의
627명이 탐색했습니다.

 How to Reduce the Capacity of a `std::vector`?

std::벡터 크기 조정: 초과 용량 자르기

질문: std::벡터 크기를 어떻게 줄일 수 있나요? 사용하지 않는 공간을 회수하고 용량을 줄이려면?

답변: std::Vector를 현재 크기로 축소하려면 Scott Meyers가 Effective STL에서 권장하는 "스왑 트릭"을 활용할 수 있습니다( 항목 17). 작동 방식은 다음과 같습니다.

1. 임시 벡터 생성:

원래 벡터와 동일한 데이터 유형을 사용하여 임시 std::벡터를 생성합니다.

<code class="cpp">vector<Person> temp(persons);  // Assuming 'persons' is the original vector</code>
로그인 후 복사

2. 벡터 교체:

swap() 함수를 사용하여 원래 벡터를 임시 벡터로 교체합니다.

<code class="cpp">persons.swap(temp);</code>
로그인 후 복사

설명:

std::Vector 복사 생성자는 복사되는 요소의 필요한 수에 대해서만 메모리를 할당합니다. 벡터를 교환하면 기본적으로 원본 벡터의 현재 크기에 맞는 새 벡터가 생성됩니다. 그런 다음 원본 벡터는 임시 벡터에서 새로 할당된 크기를 받아 초과 용량을 효과적으로 줄입니다.

이 접근 방식은 효율적이며 개별 요소를 복사하지 않습니다. 이는 상수 시간 작업인 스왑 작업에 의존합니다.

위 내용은 `std::Vector`의 용량을 줄이는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!