Вопрос по c++ – C ++ удалить вектор, объекты, свободную память

40

Я полностью сбит с толку в отношении удаления вещей в C ++ Если я объявляю массив объектов и если я используюclear() функция. Могу ли я быть уверен, что память была освобождена?

Error: User Rate Limit Exceeded

tempObject obj1;
tempObject obj2;
vector<tempObject> tempVector;

tempVector.pushback(obj1);
tempVector.pushback(obj2);

Могу ли я безопасно позвонить, чтобы освободить всю память? Или мне нужно перебрать, чтобы удалить один за другим?

tempVector.clear();

Error: User Rate Limit Exceeded

vector<tempObject> *tempVector;
//push objects....
tempVector->clear();
Error: User Rate Limit Exceededstackoverflow.com/questions/3054567/… Udayraj Deshmukh
Error: User Rate Limit Exceeded Marlon

Ваш Ответ

4   ответа
14

vector::clear()Error: User Rate Limit Exceeded

Error: User Rate Limit Exceededclear()Error: User Rate Limit Exceededbut the backing array will not be deallocatedError: User Rate Limit Exceededsizeof(T) * 10Error: User Rate Limit Exceededsize()Error: User Rate Limit Exceededsize()Error: User Rate Limit Exceeded

Error: User Rate Limit ExceedednewError: User Rate Limit ExceededdeleteError: User Rate Limit Exceededclear()Error: User Rate Limit Exceeded

20

object lifetime storage duration

{
    vector<MyObject> v;
    // do some stuff, push some objects onto v
    v.clear(); // 1
    // maybe do some more stuff
} // 2

1vMyObjectHoweverv

12

2v1v

v2std::unique_ptrvvclear

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
74

vector<tempObject>().swap(tempVector);

shrink_to_fit

std::vector::resizeError: User Rate Limit Exceedednot requiredError: User Rate Limit Exceeded
Error: User Rate Limit ExceededtempVector.resize(0)Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededresize(0)Error: User Rate Limit Exceededclear())
Error: User Rate Limit Exceeded mister
Error: User Rate Limit Exceeded
0

Error: User Rate Limit Exceeded

my_arr.resize()

Error: User Rate Limit Exceeded

Похожие вопросы