C++ Vector用法详解

2020-01-06 13:16:13王冬梅

vector<type>c;创建一个空的vector容器。

vector<type> c1(c2);复制一个vector。

vector<type> c(n);创建一个vector,含有n个数据,数据均以缺省构造产生,即全0;

vector<type> c(n,elem)创建一个vector,含有n个elem的拷贝数据。

vector<type> c(beg,end)创建一个以[beg,end)区间的vector。

~vector<type>()   销毁所有数据,施放内存。

压缩一个臃肿的vector

很多时候大量的删除数据,或者通过使用reserver(),结果vector的空间远远大于实际的需要。所以需要压缩vector到它的实际大小。resize()能增加vector的大小。clear()仅仅移除容器内的数据,不能改变capacity()的大小,所以对vector进行压缩非常重要。

测试一下clear()函数:

复制代码
//
//  vector.cpp
//  vector
//
//  Created by scandy_yuan on 13-1-7.
//  Copyright (c) 2013年 Sam. All rights reserved.
//

 

#include <iostream>
#include <vector>
using namespace std;
int main(int argc, const char * argv[])
{

    // insert code here...
    vector<int> v;
    v.push_back(1);
    v.push_back(2);
    v.push_back(3);
    vector<int>::iterator it;
    cout << "clear before:" << " ";
    for(it=v.begin();it!=v.end();it++){
        cout << *it << "t";
    }
    cout << endl;
    cout << "clear before capacity:" << v.capacity() << endl;
    v.clear();
    cout << "after clear:" << " ";
    for(it=v.begin();it!=v.end();it++){
        cout << *it << "t";
    }
    cout << endl;
    cout << "after clear capacity:" << v.capacity() << endl;
    return 0;
}