C++ vector学习笔记

C++ vector学习笔记


目录

C++ vector学习笔记

0.vector使用迭代的方式打印内容

1.vector的几种初始化方式

2.vector常用的赋值操作

3.vector大小操作

4.vector 存取数据

5.vector插入和删除元素

6.vector 巧用swap缩减空间

7.vector中reserve 预留空间 resize区别


0.vector使用迭代的方式打印内容

void printVector(vector& v)
{
    for(vector::iterator it = v.begin();it!=v.end();it++)
    {
        cout<<*it<<" ";
    }
    cout<

1.vector的几种初始化方式

void test01()
{
     vector 
	int arr[] = {1,2,3,4,5};
	//使用数组元素进行初始化
	vector v2(arr,arr+sizeof(arr)/sizeof(int));
	//使用vector指定起点,终点进行初始化
	vector v3(v2.begin(),v2.end());
	//直接使用vector进行初始化
	vector v4(v3);
	//打印结果
	printVector(v2);
	printVector(v3);
	printVector(v4);
}

2.vector常用的赋值操作

void test02()
{
    int arr[] = {1,2,3,4,5};
    //默认构造
    vector v(arr,arr+sizeof(arr)/sizeof(int));
    //成员方法
    //assign 赋值
    vector v2;
    v2.assign(v.begin(),v.end());
    //重载 =
    vector v3;
    v3 = v2;
    printVector(v);
    printVector(v2);
    printVector(v3);
    cout<<"--------------------------"< v4(arr2,arr2+sizeof(arr2)/sizeof(int));
    //交换当前两个vector的元素
    v4.swap(v);
    printVector(v);
    printVector(v2);
    printVector(v3);
    printVector(v4);
    //此处实验证明:v4.swap(v),仅仅会交换v与v4的内容

}

3.vector大小操作

void test03()
{
    int arr[]={1,2,3,4,5};
    vector v(arr,arr+sizeof(arr)/sizeof(int));
    cout<<"The size of v is:"<

4.vector 存取数据

void test04()
{
    int arr[] = {1,2,3,4,5};
    vector v(arr,arr+sizeof(arr)/sizeof(int));
    for(int i = 0;i

5.vector插入和删除元素

void test05()
{
    vector v;
    //尾插
    v.push_back(2);
    v.push_back(3);
    //头插
    v.insert(v.begin(),1);
    //vector支持随机访问
    v.insert(v.begin()+3,4);
    //支持数组下标,一般都支持随机访问
	//迭代器可以直接+2 +3 -2 -5操作

    printVector(v);//1 2 3 4

    //删除
    v.erase(v.begin());
    printVector(v);//2 3 4
    v.erase(v.begin()+1,v.end());
    printVector(v);//2
    v.clear();
    cout<<"size:"<

6.vector 巧用swap缩减空间

void test06()
{
    //vector添加元素,他会自动增长,你删除元素时,会自动减少么?
    vector v;
    for(int i=0;i<100;i++)
    {
        v.push_back(i);
    }
    cout<<"size "<(v).swap(v);
    cout << "size: " << v.size() << endl;//10
	cout << "capacity: " << v.capacity() << endl;//10
}

7.vector中reserve 预留空间 resize区别

void test07()
{
    int num = 0;
    int* address = NULL;

    vector v;
    v.reserve(1000);
    for(int i =0;i<1000;i++)
    {
        v.push_back(i);
        if(address != &(v[0]))
        {
            address = &(v[0]);
            num++;
        }
    }
    cout<<"num: "<

 

你可能感兴趣的:(C++)