1.string库提供了 >、<、==、>=、<=、!= 等比较运算符,比如两个字符串s和t,直接(s==t)是正确的。
2.unordered_map 容器,直译过来就是"无序 map 容器"的意思。所谓“无序”,指的是 unordered_map 容器不会像 map 容器那样对存储的数据进行排序。换句话说,unordered_map 容器和 map 容器仅有一点不同,即 map 容器中存储的数据是有序的,而 unordered_map 容器中是无序的。
头文件:#include<unordered_map >
3.vector::earse
是擦除容器内固定位置的值或者一个区间的值,但是它的返回值是一个迭代器,指向最后一个删除元素的下一个元素;
for(Iter = v1.begin(); Iter != v1.end(); Iter++)
{
if(*Iter == 10)
{
Iter = v1.erase(Iter);//Iter为删除元素的下一个元素的迭代器
//即第一次这段语句后Iter 会是20,大家可以通过debug调试出来查看下数值
}
总是容易写成v1.erase(v1[i]);//这样会使迭代器编程野指针,造成系统崩溃
4.两个字符串需要比较时,可以让字符串的值转为数字而成为容器或者数组里中括号里的值,那么它等于哪个数字就代表这个字符有几个,比如下俐中:
bool canConstruct(string ransomNote, string magazine)
{
int m[26]={0};
for(int i=0;i<magazine.size();i++)
{
m[magazine[i]-'a']++;//1,比如这里有字母转化为数字9,而a[9]=2;就代表9有两个
}
for(int j=0;j<ransomNote.size();j++)
{
m[ransomNote[j]-'a']--;
if(m[ransomNote[j]-'a']<0) return false;
}
return true;
}
5.string中find ()返回值是字母在母串中的下标位置。
6.函数的返回类型是vector,但是题中需要用到set容器操作,可以定义set存储结果,在最后返回的时候就定义vector<类型>(set.begin(),set.end());如下:文章来源:https://www.toymoban.com/news/detail-410248.html
return vector<int>(res.begin(),res.end());
7.vector插入数据是push_back:在数组的最后添加数据,但是set是insert函数插入数据。文章来源地址https://www.toymoban.com/news/detail-410248.html
到了这里,关于分享刷题的一些小知识点--4.9日的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!