算法基础·C++常用操作

发布时间:2026/5/25 19:10:54

算法基础·C++常用操作 lower_bound二分查找查找原则是a[mid] target的左边界也就第一个大于等于target的数返回是对应的内存地址注意需要减去起始地址得到下标idx离散化获得新下标用法idx lower_bound(a.begin()1,a.begin()len1,a[i])-a教程C lower_bound()函数用法详解unique去重函数对已经排序的数组a进行元素去重处理左闭右开返回的是去重后的数组最后一个元素的下一个元素的迭代器或者内存地址。前置条件数组必须有序。获得去重后的数组长度用法newlen unique(a1,aalen1)-a-1。教程unique函数用法讲解priority_queuetype,vectortype,cmp优先级队列第一个是类型第二是实现容器一般使用vector第三个是函数不可以是lambda表达式和普通的函数需要定义一个类重载函数调用( )实现以上功能。classcmp{public:booloperator()(type a,type b){returnab;}};对于一般的数据类型可以使用greatertype和lesstype函数来实现比较。atoi(const char *)和to_string(int)字符串和整形互相转换string转intatoi接受一个const char *类型的C语言字符串需要首先使用stirng.c_str()转换为C语言字符串进行处理。char*混合转int不能直接使用atoiif(isdigit(s[i])){intnum0;while(is.size()isdigit(s[i])){num*10;nums[i]-0;i;}i--;nums.push(num);}memset(void*,val,sizeof void*)按照字节填充数组例如val0x3F0011对于int类型数组来说所有值都是4个字节那么所有值都会被填充为0x3f3f3f3f。大于255的填充值会被截断变成无效值。

相关新闻