《算法笔记》学习记录(二)[C++STL]

本文深入探讨了C++标准模板库(STL)中Vector与Set的使用方法及特性。详细介绍了Vector的迭代器操作、常用函数,如push_back、pop_back、size、clear等,以及Set的自动排序和去重功能。此外,还讲解了如何在Set中进行查找、插入、删除等操作。

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

6.1vector
(1).迭代器

vector<int>vi;
vi.push_back(3);
vi.push_back(4);
vector<int>::iterator it=vi.begin(); //定义迭代器,使用*it访问vector中元素
printf("%d ",*(it+1) //输出vi[1]

(2).

vi.begin() //数组首元素地址
vi.end() //尾元素的下一个元素的地址

(3).常用函数

vector<int>vi;
vi.push_back(3) //末尾添加一个元素,O(1)
vi.pop_back() //末尾删除一个元素,O(1)
vi.size() //返回元素个数
vi.clear() //清空vector

//指定位置插入,插入范围为[0,vi.size()-1 ] ,故不能用于插在尾部
vi.insert(it,x) //向vector的任意迭代器it处插入一个元素x,复杂度O(N)
vi.insert(vi.begin()+2,4) //将4插入vi[2]的位置

//指定位置删除
vi.erase(it) //删除单个元素
vi.erase(first,last) //删除[first,last)区间内的元素

6.2 set (内部自动有序且无重复元素)

		set<int>st;
        st.insert(2);
        st.insert(3);
        for(set<int>::iterator it=st.begin();it!=st.end();it++) 
            cout<<*it<<endl;   	//注意set不能用it<st.end()

set内元素自动递增排序,且自动去重

查找

set<int>::iterator it=st.find(2); //find函数返回set中值为2的元素的迭代器
//未找到时返回st.end()

删除

st.erase(it);			//根据迭代器删除
st.erase(st.find(2));
st.erase(100)  //根据元素值删除
st.erase(it1,it2) //根据迭代器进行区间删除,范围左闭右开
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值