【转】vector向量容器 基本操作

本文详细介绍了C++向量容器的创建方法、尾部元素扩张、下标访问、元素插入、删除、反向排列及大小获取等核心操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

vector向量容器:

1.创建vector对象的三种形式:

(1)不指定容器元素的个数        vector<int> v;

(2)创建时指定容器的大小        vector<int> v(10);

(3)指定大小并赋初值              vector<int> v(10,0);  10个元素初值都是0

2.尾部元素扩张

使用push_back()vector容器在尾部追加新元素,尾部追加新元素,vector容器会自动分配新内存空间。

Eg

#include <iostream>
#include <vector>
using namespace std;

int main()
{
    vector<int> v;
    v.push_back(2);
    v.push_back(5);
    v.push_back(10);
    for(vector<int>::iterator i=v.begin();i!=v.end();i++)
        cout<<*i<<" ";
    cout<<endl;
    return 0;
}


3.下标方式访问vector元素

#include <iostream>
#include <vector>
using namespace std;

int main()
{
    vector<int> v(3);
    v[0]=2;
    v[1]=5;
    v[2]=10;
    for(int i=0;i<3;i++)
         cout<<v[i]<<" ";
    cout<<endl;
    return 0;
}


 

 

4.元素的插入

Insert()方法可以在vector对象的任意位置前插入一个新的元素,同时vector自动扩展空间。

Eg

#include <iostream>
#include <vector>
using namespace std;

int main()
{
    vector<int> v;
    int a,i,k;
    for(i=0;i<5;i++)
    {
        cin>>a;
        v.push_back(a);
    }
    cin>>k;
    v.insert(v.begin()+k,10);
    for(vector<int>::iterator it=v.begin();it!=v.end();it++)
        cout<<*it<<" ";
    cout<<endl;
    return 0;
}


 

5.元素的删除

erase()方法可以删除vector迭代器所指的一个元素或一段区间中的所有元素

clear()方法则一次性删除vector中所有的元素

#include <iostream>
#include <vector>
using namespace std;

int main()
{
    vector<int> v;
    for(int i=0;i<10;i++)
       v.push_back(i);
    v.erase(v.begin()+2);   //删除下标为2的元素
    vector<int>::iterator it;
    for(it=v.begin();it!=v.end();it++)
         cout<<*it<<" ";
    cout<<endl;
    v.erase(v.begin()+1,v.begin()+5);   //注意这里是删除下标从1到4的所有元素
    for(it=v.begin();it!=v.end();it++)
         cout<<*it<<" ";
    cout<<endl;
    v.clear();
    cout<<v.size()<<endl;
    return 0;
}


 

6.反向排列算法

reverse()反向排列算法,需要定于头文件#include <algorithm>

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

int main()
{
    vector<int> v;
    for(int i=0;i<10;i++)
        v.push_back(i);
    reverse(v.begin(),v.end());
    vector<int>::iterator it;
    for(it=v.begin();it!=v.end();it++)
       cout<<*it<<" ";
    cout<<endl;
    return 0;
}


7.sort   可以自己设置比较函数cmp

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

int main()
{
    vector<int> v;
    for(int i=0;i<10;i++)
        v.push_back(9-i);
    sort(v.begin(),v.end());
    vector<int>::iterator it;
    for(it=v.begin();it!=v.end();it++)
       cout<<*it<<" ";
    cout<<endl;
    return 0;
}


 

8.向量的大小

使用size()方法可以返回向量的大小,即元素的个数

使用empty()方法返回向量是否为空,非空返回0,空则返回1

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

int main()
{
    vector<int> v;
    for(int i=0;i<10;i++)
        v.push_back(i);
    vector<int>::iterator it;
    cout<<v.size()<<endl;
    v.clear();
    cout<<v.empty()<<endl;
    return 0;
}


http://blog.youkuaiyun.com/acdreamers/article/details/8680967

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值