가능한 중복 :std :: vector에서 메모리를 해제 하시겠습니까?
reduce the capacity of an stl vector
Is this normal behavior for a std::vector?
지금 현재 상황이 있습니다. 나는 OGLSHAPE라는 클래스를 가지고 있고 이것들을 벡터로 푸시한다. 한번 shapevec.clear()를 수행하면 모든 기억을 되 찾을 수 있었으면 좋겠다.하지만 그 중 3/4 만 되돌려 놓았다. 나는 이것이 누출이 아닌지 확신 할 수 있도록 모든 리소스를 해제하고자하므로 100 % 확실하지 않습니다.
#include <vector>
template <typename T>
void FreeAll(T & t) {
T tmp;
t.swap(tmp);
}
int main() {
std::vector <int> v;
v.push_back(1);
FreeAll(v);
}
닐, 'tmp'가있는 이유가 있습니까? 아니면 스타일과 개인 취향에 관한 질문입니까? – sbi
@sbi 둘 다 :-) 그리고 나는 그것이 더 분명하다고 생각합니다. –
@ 네일 : 예, 제 말씨가 나빴습니다. 나는 기술적 인 이유가 있는지 물어볼 생각이었습니다. 어쨌든, 답변 주셔서 감사합니다. _C Terseness Virus_에 의해 중독되었을 수도 있지만 실제로는 std :: vector() .swap (v)를 선호합니다. –
sbi