set的find函数,erase函数,auto关键字的使用, to_string函数,stoi函数,单调递减栈, set的 insert.second--LeetCode笔记2

本文介绍了C++中集合set的find和erase函数使用,包括迭代器定位和键值删除。讨论了auto关键字在编程中的应用,以及to_string和stoi函数的转换功能和区别。此外,还讲解了单调栈的概念及其在解决特定问题中的应用,并分析了set.insert().second在判断元素插入状态上的作用。

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

1. set的find函数,返回一个指向被查找到元素的迭代器,,如果没找到,返回的是set.end()

2.erase(iterator)  ,删除定位器iterator指向的值

erase(first,second),删除定位器first和second之间的值

erase(key_value),删除键值key_value的值

#include "stdafx.h"
#include<set>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	set<int> st;
	st.insert(1);
	st.insert(1);
	st.insert(2);
	st.insert(3);
	st.erase(1);//直接删除
	st.erase(st.find(3));//找到删除 区间这里不做表达
	for(set<int>::iterator it=st.begin();it!=st.end();it++)
	{
		printf(" %d\n ",*it);
	}
	return 0;
}

3. c++的auto关键字的使用,题目955删列造序ll

C++ auto 关键字的使用 - 自由真实个性 - 博客园

4. to_string函数,题目:1323

to_string是C++标准(2011年)的最新版本中引入的功能。旧的编译器可能不支持它。

C++中的to_string()函数[C++11支持]_大白技术控的博客-优快云博客_to_string头文件

5. stoi函数用法,以及和atoi函数的区别,题目:1323

相同点:
①都是C++的字符处理函数,把数字字符串转换成int输出
②头文件都是#include<cstring>

不同点:
①atoi()的参数是 const char* ,因此对于一个字符串str我们必须调用 c_str()的方法把这个string转换成 const char类型的,而stoi()的参数是const string,不需要转化为 const char*;
②stoi()会做范围检查,默认范围是在int的范围内的,如果超出范围的话则会runtime error!

c++中的atoi()和stoi()函数的用法和区别_鸡啄米的时光机的博客-优快云博客_stoi

6. find函数可以简化搜索,降低时间复杂度,题目:两数之和

map提供一个find的成员函数,但也仅限于查找关键字满足条件的记录,不支持值域的比较。如果我们要在值域中查找记录,该函数就无能无力了。

[转载]STL的find_if函数之map容器应用_ygdljg_新浪博客

 for(int i=0;i<nums.size();i++)
        {
            if(m.find(target-nums[i]) != m.end())      
                return {m[target-nums[i]] , i};         
            m[nums[i]]=i;       //向map中添加元素
        }

7. 单调递减栈  题目:962最大宽度坡     单调递增栈(monotonous increasing stack) - 简书

【learning】 单调队列与单调栈用法详解 - AlphaInf - 博客园

8. set的 insert.second,题目:219存在重复元素ll

set的单元素版返回一个二元组(Pair)。成员 pair::first 被设置为指向新插入元素的迭代器或指向等值的已经存在的元素的迭代器。成员 pair::second 是一个 bool 值,如果新的元素被插入,返回 true,如果等值元素已经存在(即无新元素插入),则返回 false。  所以set.insert(xx).second是用来确认set元素是否成功插入的标识,也可以用来确认该元素之前没有被插入也没有被处理过。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值