LeetCode 349. Intersection of Two Arrays
之前刷了这些题,难度不高,但是语法上总有一些问题,故此记录方便后查:
1:用vec初始化set set<int> set1(vec.begin(),vec.end());
2:set的查找 set1.find(a) 返回值是iterator 没查找到时 返回的是set1.end();
3:set的删除元素的操作,set1.erase(a) 就是删除元素值为a的元素。
4:vector的查找 vector<int>::iterator iter = find(vec.begin(),vec.end(),a) //查找a 返回iterator
5:vector的删除操作
for(auto iter = vec.begin();iter!=vec.end();iter++){
if(*iter==a){
vec.erase(iter);
}
}
上面程序是错的
应该是
for(auto iter = vec.begin();iter!=vec.end();){
if(*iter==a){
iter=vec.erase(iter);
}else{
iter++;
}
}
6:map的使用 map是键值对 可以使用map[]方式使用 但是[]中的值必须是键值 比如map[1] ,map['a']
map的查找
通过键值查找 map1.find(key)!=map1.end() 表示查找到了;其他具体的去查资料