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元素是否成功插入的标识,也可以用来确认该元素之前没有被插入也没有被处理过。