C++ STL函数库 vector(henu.hjy)

本文深入探讨了C++ STL中的Vector容器,详细介绍了其声明、使用及常见操作方法,包括push_back、pop_back、insert、erase等函数的使用,并通过实例代码展示了如何利用Vector进行动态数组的操作。

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

我们需要明白vector这是个什么??

答:通俗而言——一个长度根据所需自动改变的数组,同时还可以用于以邻接表的方式进行存储图

使用前提:

头文件#include <vector>

使用C时,还应该加入using namespace std;

声明调用方式:

vector<typename> name;

typename 可以是任何基本类型,各种数、字符、结构体、STL容器(vector、set、queue....)

注意!!如果typename是vector时">>"之间应有空格!!

vector<vector<int>_>vi;//该_为空格!!!!!!

以下是代码其中一一解释了常用函数的作用,这些注释也是代码中的重难点!

#include <iostream>
#include <vector>

using namespace std;

//vector 应用解析
//vector<typename> vi;
//vector<vector<int> >vi;两个>>之间应有空格
//vector<typename> vi[ArraySize];理解为纵横向都可以变的二维数组
//vector<typename>::iterator it = vi.begin();指将第一个元素的特别地址赋给迭代器  用*(it);进行取值
//vi.push_back();
//vi.pop_back();
//vi.size();    vi.clear(); //size是长度,clear是清空

//vi.insert(it,x);用一个迭代器it插入一个元素x  vi.erase(vi.begin()+3);  vi.erase(vi.begin()+1,vi.begin()+3);
//vi.begin()+i; 相当于迭代器(特别的地址),仅可以在vector和string中使用
//vi.end();  指尾元素后的另一个
//vi[i]与*(vi.begin()+i)是等价的

int main()
{
    vector<int> vi;
    for(int i = 1;i<=5;i++){
        vi.push_back(i);
    }
    vector<int>::iterator it = vi.begin();
    //三种取值方式
    //(1)
    cout<<"用第一种方式输出:"<<endl;
    for(int i = 0;i<vi.size();i++){
        cout<<vi[i]<<" ";
    }
    cout << endl;
    //(2)
    cout<<"用第二种方式输出:"<<endl;
    for(int i=0;i<vi.size();i++){
        cout<<*(it+i)<<" ";
    }
    cout << endl;
    //(3)
    cout<<"用第三种方式输出:"<<endl;
    for(vector<int>::iterator it1 = vi.begin() ; it1!=vi.end() ; it1++){//不可用 it1<vi.end();
        cout<<*(it1)<<" ";
    }
    cout<<endl;
    //删除尾元素
    vi.pop_back();
    cout<<"删除尾元素后:"<<vi.size()<<endl;
    vi.insert(vi.begin()+2,47);
    vi.erase(vi.begin()+1);
    cout<<"删除尾元素,并在第三个元素位置加入47,而后删除第二个元素,后的输入结果:"<<endl;
    for(int i = 0;i<vi.size();i++){
        cout<<vi[i]<<" ";
    }
    cout<<endl;
    vi.erase(vi.begin()+1,vi.begin()+3);
    cout<<"删除区间[第二个,第四个元素)后长度"<<vi.size()<<"以及其结果"<<endl;
    for(int i = 0;i<vi.size();i++){
        cout<<vi[i]<<" ";
    }
    cout<<endl;
    vi.clear();
    cout<<"清空后的长度"<<vi.size()<<endl;
    return 0;
}

 

最后我从网上找了一下stl中vector的其他一些函数(仅供参考):

c++ stl容器set成员函数:begin()--返回指向第一个元素的迭代器

c++ stl容器set成员函数:clear()--清除所有元素

c++ stl容器set成员函数:count()--返回某个值元素的个数

c++ stl容器set成员函数:empty()--如果集合为空,返回true

c++ stl容器set成员函数:end()--返回指向最后一个元素的迭代器

c++ stl容器set成员函数:equal_range()--返回集合中与给定值相等的上下限的两个迭代器

c++ stl容器set成员函数:erase()--删除集合中的元素

c++ stl容器set成员函数:find()--返回一个指向被查找到元素的迭代器

c++ stl容器set成员函数:get_allocator()--返回集合的分配器

c++ stl容器set成员函数:insert()--在集合中插入元素

c++ stl容器set成员函数:lower_bound()--返回指向大于(或等于)某值的第一个元素的迭代器

c++ stl容器set成员函数:key_comp()--返回一个用于元素间值比较的函数

c++ stl容器set成员函数:max_size()--返回集合能容纳的元素的最大限值

c++ stl容器set成员函数:rbegin()--返回指向集合中最后一个元素的反向迭代器

c++ stl容器set成员函数:rend()--返回指向集合中第一个元素的反向迭代器

c++ stl容器set成员函数:size()--集合中元素的数目

c++ stl容器set成员函数:swap()--交换两个集合变量

c++ stl容器set成员函数:upper_bound()--返回大于某个值元素的迭代器

c++ stl容器set成员函数:value_comp()--返回一个用于比较元素间的值的函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值