C++ vector的用法

loading 分享 2026-9-2 下载文档

只有临时变量的修整过的容量,而这个临时变量则持有了曾经在ivec中的没用到的过剩容量。在这里(这个语句结尾),临时vector被销毁,因此释放了以前ivec使用的内存,收缩到合适。

3.用swap方法强行释放STL Vector所占内存 template < class T> void ClearVector( vector& v ) {

vectorvtTemp; vtTemp.swap( v ); } 如

vector v ; nums.push_back(1); nums.push_back(3); nums.push_back(2); nums.push_back(4); vector().swap(v); /* 或者v.swap(vector()); */

/*或者{ std::vector tmp = v; v.swap(tmp); }; //加大括号{ }是让tmp退出{ }时自动析构*/

五、Vector 内存管理成员函数的行为测试

C++ STL的vector使用非常广泛,但是对其内存的管理模型一直有多种猜测,下面用实例代码测试来了解其内存管理方式,测试代码如下: #include #include using namespace std; int main() {

vector iVec;

cout << \容器大小为: \

cout << \容器容量为: \个元素,容器容量为1 iVec.push_back(1);

cout << \容器大小为: \

cout << \容器容量为: \个元素,容器容量为2 iVec.push_back(2);

cout << \容器大小为: \

cout << \容器容量为: \个元素,容器容量为4 iVec.push_back(3);

cout << \容器大小为: \

cout << \容器容量为: \个元素,容器容量为4 iVec.push_back(4); iVec.push_back(5);

cout << \容器大小为: \

cout << \容器容量为: \个元素,容器容量为8 iVec.push_back(6);

cout << \容器大小为: \

cout << \容器容量为: \个元素,容器容量为8 iVec.push_back(7);

cout << \容器大小为: \

cout << \容器容量为: \个元素,容器容量为8 iVec.push_back(8);

cout << \容器大小为: \

cout << \容器容量为: \个元素,容器容量为8 iVec.push_back(9);

cout << \容器大小为: \

cout << \容器容量为: \个元素,容器容量为16 /* vs2005/8 容量增长不是翻倍的,如 9个元素 容量9 10个元素容量13 */

/* 测试effective stl中的特殊的交换 swap() */

cout << \当前vector 的大小为: \cout << \当前vector 的容量为: \vector(iVec).swap(iVec);

cout << \临时的vector对象的大小为: \cout << \临时的vector对象的容量为: \cout << \交换后,当前vector 的大小为: \cout << \交换后,当前vector 的容量为: \return 0; }

六、vector的其他成员函数 c.assign(beg,end)

将[beg; end)区间中的数据赋值给c。 c.assign(n,elem)

将n个elem的拷贝赋值给c。 c.at(idx)

传回索引idx所指的数据,如果idx越界,抛出out_of_range。 c.back()

传回最后一个数据,不检查这个数据是否存在。 c.front()

传回地一个数据。 get_allocator

使用构造函数返回一个拷贝。 c.rbegin()

传回一个逆向队列的第一个数据。 c.rend()

传回一个逆向队列的最后一个数据的下一个位置。 c.~ vector ()

销毁所有数据,释放内存。


C++ vector的用法.doc 将本文的Word文档下载到电脑
搜索更多关于: C++ vector的用法 的文档
相关推荐
相关阅读