std::vector::push_back()
을 호출 할 때 실제로 필요한 메모리를 더 많이 할당하는 것은 재 할당 메커니즘이 처리한다는 것을 알고 있습니다.std :: vector :: resize 및 std :: vector :: push_back에서 상각하기
std::vector<int> v;
for(unsigned i = 0; i < 100000; ++i)
{
v.resize(v.size() + 1);
}
는이 벡터의 용량이 "임을 보장 : 는 일반적으로 용량이
는는 다음과 같이 우리가 요소를 추가, 가정 ... ~ 1.618 배율 2 배 또는 황금 비율 번호와 함께 성장 재배치가 일어나면 두 배가됩니까? 즉, "+1 크기 조정"은 push_back
에 대해 수행되는 것과 같은 방식으로 메모리를 할당합니다.
아니면 구현에 의존하는 순수한 것입니까?
나는이 질문을 이해하지 못합니다. 이미 용량이 2 배 (즉, 2 배) ** 또는 ** 황금 비율로 증가한다는 것을 이미 언급했습니다. – user463035818
@ tobi303 OP가'push_back'과 비교하여'resize'에 대해 질문하고 있다고 생각합니다. –
@ChrisDrew 아아, 지금은 질문을 이해하고있다.). 여전히 개선 될 수 있다고 생각하지만 – user463035818