cout << "old: size = " << vecnum.size() << " ; capacity = " << vecnum.capacity() << endl; //1. clear(),清空元素,但不回收空间 //vecnum.clear(); //2. 使用 erase循环删除,结果同上 //vector<int>::iterator it; //for (it = vecnum.begin(); it != vecnum.end(); ) /...
vector也一样,你把水喝了,并不能把水箱也缩小,要把水箱缩小的做法—— ——swap()交换函数完美释放内存。 vector(v).swap(v); // 清除v而且最小化它的容量 注意: a. erase()函数,只能删除内容,不能改变容量大小; erase成员函数,它删除了itVect迭代器指向的元素,并且返回要被删除的itVect之后的迭代器,迭...
erase成员函数,它删除了itVect迭代器指向的元素,而且返回要被删除的itVect之后的迭代器,迭代器相当于一个智能指针。 b. clear()函数,仅仅能清空内容,不能改变容量大小 c. vector容器删除不自己主动释放内存。那么它存在内存泄露???不是的。vector在析构函数的时候。对内存进行了释放。 d. 假设要想在删除内容的...
erase成员函数,它删除了itVect迭代器指向的元素,而且返回要被删除的itVect之后的迭代器,迭代器相当于一个智能指针。 b. clear()函数,仅仅能清空内容,不能改变容量大小 c. vector容器删除不自己主动释放内存。那么它存在内存泄露???不是的。vector在析构函数的时候。对内存进行了释放。 d. 假设要想在删除内容的...
vector(v).swap(v); // 清除v并且最小化它的容量 注意: a. erase()函数。仅仅能删除内容,不能改变容量大小; erase成员函数,它删除了itVect迭代器指向的元素,而且返回要被删除的itVect之后的迭代器,迭代器相当于一个智能指针。 b. clear()函数,仅仅能清空内容,不能改变容量大小 ...