사람, 나는이 모든 프로그래밍 토크에 익숙하지 않다. 지금까지는 인터넷 검색으로 답변을 찾는 것이 매우 쉬웠으나 바로 여기서 내가 묻고 싶은 것을 표현하는 데 큰 어려움이 있습니다. 시도해 보겠습니다. 벡터를 지우는 것은 메모리를 해제하기 전에 소멸자를 호출하는 것입니까? 이제 struct-vector가 파괴되면 어떻게 반응합니까? 하나는 이런 것들에 대한 소멸자를 정의하지는 않지만 구조체가 "소멸"되면 각 멤버의 소멸자도 호출된다고 가정하는 것이 맞습니까?vector :: erase()도 구조체의 멤버 벡터를 지움
나를 당신에게 예를 보자 :
#include <string>
#include <vector>
struct ding_t {
std::string dang;
} foo;
strung boom_t {
vector <ding_t> chuck;
} bar;
int main() {
vector <boom_t> tom;
tom.resize(10);
tom[4].chuck.resize(5);
tom[4].chuck[3].dang = "jerry";
tom.erase();
return 0;
}
을,이 경우에는 메모리가
tom[4].chuck.resize(5);
에 의해 할당 된 것뿐만 아니라 해제? 미안 해요, 내 어휘,하지만 지금은 포인터에서 벡터의 더 복잡한 cpp 언어에 상응하는 이동하려고합니다. 나는 내 관점을 알기를 바랍니다. 사전에 감사드립니다. 이미 말한 것처럼이 질문에 답을 얻으려면이 질문에 대한 경계를 알지 못합니다.
작업중인 언어의 태그를 추가하면 더 많은 관심을 갖게됩니다. 죄송합니다. 질문에 대답 할 수 없습니다. + 1'd – vdbuilder