c++函数使用记录
本文最后更新于:2021年7月28日 下午
c++函数使用记录
STL 函数
-
equal_range()
:一个二分查找的算法,试图在已排序的[first,last)中寻找value,它返回一对迭代器i和j。-
如果该键值在容器中存在,则i是在不破坏次序的前提下,value可插入的第一个位置(亦即lower_bound),j是在不破坏次序的前提下,value可插入的最后一个位置(亦即upper_bound);如果找不到,则i,j都指向此键值应该插入的位置。
-
C++11 简便写法
auto bounds = equal_range(nums.begin(), nums.end(), target);
-
可以将其看做
lower_bound
和upper_bound
的结合 -
vector map
都可以用1
2vector: equal_range(nums.begin(), nums.end(), target);
map:
-
-
distance()
:计算迭代器之间的距离1
int dis=distance(nums.begin(),nums.end()
-
remove()
:移除区间{beg,end)中每一个“与value相等”的元素。最后remove返回指向“目标数列”的end()的迭代器- 只会移动元素,并且也不是将vlaues移到最后面去
1
vcetor:remove(nums.begin(),nums.end(),value);
-
Remove_if()
:移除区间[beg,end)中每一个“令判断式获得true”的元素1
2bool isValue(int x) { return x==target; }
vcetor:remove(nums.begin(),nums.end(),isValue); -
erase()
:删除容器中的某些元素,返回经过删除操作后的容器1
2erase(iter);
erase(iter.begin,iter.end) /** iter代表迭代器 **/ -
fill()
:为某容器某个区间赋相同值1
vcetor:fill(nums.begin(),nums.end(),0);
-
find(first, end, value)
:返回区间[first,end)中第一个值等于value的元素位置;若未找到,返回end。函数返回的是迭代器或指针,即位置信息- 如果查找整个区间,可以直接
xx.find(value)
- 如果查找整个区间,可以直接
-
reverse(begin,end)
:反转- 多用于string、vector
-
replace(begin,end,x,xx)
:在容器[being,end)范围内,将所有的x替换为xxxreplace_if(being,end,条件判断,xxx)
String 函数
-
str.replace()
1
2str.replace(pos,2,"#") //从位置pos开始的两个字符替换成#
str.replace(begin(),end(),"#") //[begin,end)的字符替换成"#" -
str.substr(begin,length)
:从索引begin开始,截取长度为length的字符 -
stoi(stirng s)
:将用字符串表示的数字转换为Int
- 非数字字符转换会报错
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!