C++中List类insert函数详解

insert函数用于在list中间插入元素,有3个版本.

  • 第一个版本:

insert()函数接收的第1个参数表示插入的位置,第2个参数表示要插入的值.最后返回一个迭代器,并指向刚刚插入到list中的元素.

  • 第二个版本:

该函数的第一个参数表示插入的位置,最后一个参数表示要插入的值,而第2个参数表示要插入的元素个数.

  • 第三个版本:

该重载版本是一个模版函数,第一个是位置参数,第二个和第三个接收两个迭代器,将相应范围内的元素插入到list.

具体代码实现:

#include <iostream>
#include <list>
#include <vector>
using namespace std;
int main(void)
{
    list<int> lst;
    list<int>::iterator it;//定义一个迭代器指针
    for(int i=1;i<=5;++i)
    {
        lst.push_back(i);
    }
    //运行效果是:1 2 3 4 5
    for(list<int>::iterator it=lst.begin();it!=lst.end();it++)
    {
        cout<<*it<<" ";
    }
    cout<<endl;
    //将列表开始位置赋给迭代器指针
    it=lst.begin();
    //指针值加1,此时指向列表中的第2个元素
    ++it;
    //用第1个版本的insert函数进行插入,在列表的元素2之前插入新元素9,运行效果是:1 9 2 3 4 5
    lst.insert(it,9);//1 9 2 3 4 5
    for(list<int>::iterator it=lst.begin();it!=lst.end();it++)
    {
        cout<<*it<<" ";
    }
    cout<<endl;
    //此时it指针没有改变,仍然指向最初列表的第二个元素,注意是最开始的列表,即:仍然指向元素2
    //用第2个版本的insert函数进行插入,在元素2之前插入两个新元素29,运行效果是:1 9 29 29 2 3 4 5
    lst.insert(it,2,29);
    for(list<int>::iterator it=lst.begin();it!=lst.end();it++)
    {
        cout<<*it<<" ";
    }
    cout<<endl;
    //指针值减1,此时指向列表中元素2前面的那个元素,即:元素29(从左往右第二个29)
    --it;
    vector<int> v(2,39);
    //用第3个版本的insert函数进行插入,在元素29之前插入数组区间(两个39),运行效果是:1 9 29 39 39 29 2 3 4 5
    lst.insert(it,v.begin(),v.end());
    for(list<int>::iterator it=lst.begin();it!=lst.end();it++)
    {
        cout<<*it<<" ";
    }
    cout<<endl;
    cout<<"\n";
    return 0;
}

程序运行截图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值